棧的表示和實現

2022-07-18 06:42:14 字數 684 閱讀 6037

棧是僅能在表尾(棧頂)進行插入或刪除操作的  線性表 後進後出

基本操作: 初始化,判斷是否為空棧,取棧頂元素,插入新的棧頂元素。

非空棧中棧頂指標始終在棧頂元素的下乙個位置

分為順序棧:

#include#include

typedef

struct

sqstack;

void initial(sqstack &s)

void push(sqstack &s)

while(i

}void pop(sqstack &s,int &e)

main()

}

鏈棧:

#include#include

typedef

struct

lnodelnode, *linkstack; //

鏈棧的結點定義和單鏈表一樣,只不過它只能在棧頂操作

void

initial(linkstack s)

void push(linkstack &s, int

e)void pop(linkstack &s,int &e)

main()

while(s!=null)

printf("\n

");}

鏈棧最後執行是有乙個bug

棧的順序表示和實現

棧是僅限定在表位進行插入和刪除的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂,相應的表頭端稱為棧底。不含元素的空表稱為空棧。假設棧s a1,a2,an 則稱a1為棧底元素,an為棧頂元素。棧中元素按啊a1,a2,an的次序進棧,退棧的第乙個元素應是棧頂元素。換句話說,棧的修改是按後進先出的原...

順序棧 棧的順序表示和實現

用順序表表示的棧的基本操作 include include define selemtype int define status int define stack init size 100 初始空間分配量 define stackincrement 10 儲存空間分配增量 using namesp...

鏈棧 棧的鏈式表示和實現

用鏈表示的棧的基本操作 include include define maxsize 1000 鍊錶的最大長度 define selemtype int define status int 棧的結構 typedef struct lstacklstack,lstacklist 初始化 status ...