棧是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧頂(top),對棧的基本操作有push(進棧)和pop(出棧),前者相當於插入,後者則是刪除最後插入的元素。
棧是後進先出的(lifo)表,一般的模型中,存在某個元素位於棧頂,而該元素是唯一的可見元素。只有棧頂元素是可以訪問的
棧是乙個表,因此任何實現表的方法都能實現棧。兩種方法實現:一種是指標,一種是使用陣列
棧的陣列實現是目前用的最多的方法
棧的宣告:
#ifndif _stack_h
struct stackrecord;
typedef struct stackrecord *stack;
int isempty(stack s);
int isfull(stack s);
stack createstack(int maxelements);
void disposestack(stack s);
void makeempty(stack s);
void push(elementtype x,stack s);
elementtype top(stack s);
void pop(stack s);
elementtype topandpop(stack s);
#endif
#define emptytos(-1)
#define minstacksize(5)
struct stackrecord
;
棧的建立:
stack creatstack(int maxelements)
釋放棧:
void disposestack(stack s)
}
檢測乙個棧是否空棧:
int isempty(stack s)
建立乙個空棧:
void makeempty(stack s)
進棧:
void push(elementtype x,stack s)
出棧:
void pop(stack s)
給出棧頂元素並出棧:
elementtype topandpop(stack s)
}
資料結構 第三章 棧與佇列
3.1 棧 3.1.1 抽象資料型別棧的定義 棧是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂。相反地,表頭端稱為棧底。棧是後進先出 lifo 的線性表。基本操作 top 返回棧頂元素 pop 彈出棧頂元素 push a 將元素a壓入棧 empty 判斷是否為...
資料結構 第三章 棧與佇列
定義 限定僅在表尾進行插入和刪除操作的線性表。即後進先出的線性表 last in first out 表尾即棧頂top,表頭即棧低bottom。儲存方式 順序棧 鏈棧 順序棧 一組位址連續的儲存單元,一次存放自棧低到棧頂的資料元素。結構 兩個指標top,base,乙個int size描述棧的大小 空...
資料結構之第三章 棧
出棧特點 後進先出 最近忙著準備期末的考試,要知道大學生掛科是一件很可怕的事情。先將一點棧的知識記錄下來,一學期過了課本啥的也就丟了。棧是一種只能在一端進行刪除插入或刪除操作的線性表。棧中的資料元素的邏輯關係呈線性關係,所以棧可以和線性表一樣採用順序儲存結構進行儲存。採用順序儲存結構的棧稱為順序棧。...