線性表之棧

2022-07-24 05:30:16 字數 1245 閱讀 1202

一種只能在一端進行插入或刪除操作的線性表被稱為棧,其中允許刪除或插入的一端為棧頂,另一端為棧底,棧底固定不變;

棧的特點:先進後出,例如彈夾,先裝的子彈最後才能出;

按照儲存結構可以分為兩種棧:

//

順序棧的結構體定義

typedef struct

sqstack;

//

鏈棧結構體定義

typedef struct

lnode lnode;

ps:有沒有發現鏈式棧和單鏈表定義一模一樣;其實棧的本質就是受約束的線性表;

bool

isemptys(sqstack s)

bool

isfulls(sqstack s)

void initialstack(sqstack &s)

bool push(sqstack &s, int

x)

int pop(sqstack &s)

void

printstack(sqstack s)

int i =s.top;

for (i; i >= 0; i--)

cout

<}

int

main()

; sqstack s;

initialstack(s);

cout

<< "

順序棧測試

"

printstack(s);

cout

<< "

2入棧"

cout

<< "

10入棧

"

10);

printstack(s);

cout

<< "

出棧第一次\t

"<< pop(s)

<< "

出棧第二次\t

"<< pop(s)

<< "

出棧第三次\t

"<< pop(s)

system(

"pause");

return0;

}

線性表(二) 棧之順序棧

一 定義棧的基類 棧的基類 template class stack 判斷棧是否為空 virtual bool empty 0 棧中元素的大小 virtual size t size 0 獲取棧頂元素 virtual t top 0 彈出棧頂元素 virtual t pop 0 入棧 virtual...

線性表 棧 佇列

輔助定義 define maxsize 5 define ok 0 define error 1 typedef int selemtype typedef int status 棧 順序 鏈式 相關結構體定義 順序棧 typedef struct sqstack 順序棧共享空間 typedef s...

特殊線性表 棧

定義 限定僅在表尾進行插入和刪除操作的線性表。操作特性 後進先出。注意 棧只是對錶插入和刪除操作的位置進行了限制,並沒有限定插入和刪除操作進行的時間。const int max size 100 template class t class seqstack template class t voi...