第三章第五小節 陣列實現棧

2021-10-25 10:23:47 字數 1737 閱讀 7942

用陣列來實現棧的操作。

//陣列實現棧

#define minstacksize 5

#define emptytos -1

typedef

int element;

typedef

struct stacknode * stack;

//函式宣告

intisempty

(stack s)

;//測試棧是否為空

intisfull

(stack s)

;//測試棧是否滿

stack createstack

(int capacity)

;//建立棧

void

makeempty

(stack s)

;//清空棧

stack disposestack

(stack s)

;//銷毀棧

void

push

(element x, stack s)

;//入棧

void

pop(stack s)

;//出棧

element top

(stack s)

;//獲得棧頂元素

element topandpop

(stack s)

;//獲得棧頂元素並出棧

struct stacknode

;

//建立棧

stack createstack

(int capacitys)

s =(stack)

malloc

(sizeof

(struct stacknode));

if(s ==

null

) s->array =

(int*)

malloc

(sizeof

(int

)*capacitys);if

(s->array ==

null

) s->capacity = capacitys;

makeempty

(s);

return s;

}//清空棧

void

makeempty

(stack s)

//測試棧是否為空

intisempty

(stack s)

//測試棧是否滿

intisfull

(stack s)

//入棧

void

push

(element x,stack s)

s->array[

++s->topstak]

= x;

}//出棧

void

pop(stack s)

s->topstak--;}

//獲得棧頂元素

element top

(stack s)

return s->array[s->topstak];}

//獲得棧頂元素並彈出

element topandpop

(stack s)

return s->array[s->topstak--];

}//銷毀棧

stack disposestack

(stack s)

}

第三章 第五節

pop ax 指令的執行過程 1 將ss sp指向的記憶體單元處的資料送入ax中。2 sp sp 2,ss sp指向當前棧頂下面的單元,以當前棧頂下面的單元為新的棧頂。注意 1 出棧後,ss sp指向新的棧頂,1000eh,pop操作前的棧頂元素,1000ch處的2266h依然存在,但是,它已經不在...

第三章 第五節 集合

集合是乙個無需不重複的序列,用set來表示 零 建立集合 建立集合的方式有兩種,分別是 和set 下面我們來具體講解一下。形式 形式用來建立乙個非空集合,語法如下 set 下面我們通過例子來看一下具體怎麼使用 例子 一 定義乙個包含字串的集合 name 例子 二 定義乙個包含多種型別的集合 pers...

第三章第二小節 鍊錶實現表

用鏈式結構來實現表結構的各種操作 typedef int element typedef struct node ptrnode typedef ptrnode position typedef ptrnode list 函式宣告 list createlist 建立乙個鍊錶 void makeem...