資料結構基礎 棧的順序實現與鏈式實現C

2021-09-29 03:25:30 字數 1587 閱讀 3444

棧是一種只能在一端進行插入或者刪除操作的線性表

棧的邏輯結構:線性表,可以插入或刪除的一段叫做棧頂,另一端叫做棧底。

乙個top指標指向棧頂

棧的top值不一定設定為-1,只要能夠滿足先進後出的特性即可。

元素進棧:

元素出棧:

此時,3,4雖然仍儲存在陣列中,但已經出棧,不屬於棧內

判斷棧空或棧滿

//初始化棧,設定棧頂指標位置top為-1

void initstack(sqstack &s)

//判斷棧是否為空

bool stackempty(sqstack s)

//入棧

bool pushstack(sqstack &s,int x)

//出棧

bool popstack(sqstack &s,int &x)

//獲取棧頂元素

bool getelem(sqstack s,int &x)

int main()*linkstack;

void initstack(lnode *&s)

bool stackempty(lnode *s)

//鏈式儲存中只要有足夠的記憶體就不會棧滿,所以入棧無需判斷棧是否已滿

void pushstack(lnode *&s,int x)

//出棧

bool popstack(lnode *&s,int &x)

//取棧頂元素

bool getelem(lnode *s,int &x)

int main(){

linkstack s;

initstack(s);

pushstack(s,5);

pushstack(s,4);

pushstack(s,3);

pushstack(s,2);

pushstack(s,1);

int x;

popstack(s,x);

cout<

popstack(s,x);

cout<

**於率輝老師的資料結構課程

資料結構 順序,鏈式棧的實現

功能 1.初始化 2.銷毀 3.入棧 4.出棧 順序棧 seqstack.h pragma once include define max size 1000 typedef char seqstacktype 順序棧 typedef struct seqstack seqstack 初始化 voi...

資料結構 順序棧和鏈式棧

棧 限定在表尾進行插入和刪除操作的線性表。允許插入和刪除的一端成為棧頂,另一端稱為棧底。棧的操作特性 後進先出 順序棧 設定top指標指示棧頂元素在陣列中的位置。進棧 top 1 棧空 top 1 出棧 top 1 棧滿 top maxsize const int max size 100 temp...

資料結構棧(鏈式實現)

真正的棧操作是在棧頂,這裡給出的棧是帶了頭結點的棧,也就是說head next代表圖示棧頂,head next data是1 實現 include include typedef int datatype typedef struct snode lsnode 初始化帶頭結點的鏈式堆疊,初始化函式中...