棧是一種只能在一端進行插入或者刪除操作的線性表
棧的邏輯結構:線性表,可以插入或刪除的一段叫做棧頂,另一端叫做棧底。
乙個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 初始化帶頭結點的鏈式堆疊,初始化函式中...