用陣列來實現棧的操作。
//陣列實現棧
#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...