//初始化棧
bool
init_stack
(lstack &lq)
;//判棧空
bool
judge_empty
(lstack lq)
;//入棧
bool
push
(lstack &lq,lelemtype data)
;//出棧
bool
pop(lstack &lq,lelemtype &data)
;//取棧頂元素
bool
get_top
(lstack lq,lelemtype &data)
;//遍歷輸出
bool
print_stack
(lstack lq)
;lstack sq;
intmain()
print_stack
(sq)
; cout<
pop(sq,data)
;print_stack
(sq)
; cout<
get_top
(sq,data)
;return0;
}//初始化棧
bool
init_stack
(lstack &lq)
lq.top = lq.base;
return
true;}
//判棧空
bool
judge_empty
(lstack lq)
return
false;}
//入棧
bool
push
(lstack &lq,lelemtype data)
lq.top-
>data = data;
p->next = lq.top;
lq.top = p;
return
true;}
//出棧
bool
pop(lstack &lq,lelemtype &data)
linklist p = lq.top;
lq.top = p-
>next;
data = lq.top-
>data;
cout<<
"出棧操作,棧頂資料為:"
<
delete p;
return
true;}
//取棧頂元素
bool
get_top
(lstack lq,lelemtype &data)
data = lq.top-
>next-
>data;
cout<<
"棧頂資料為:"
<
return
true;}
//遍歷輸出
bool
print_stack
(lstack lq)
cout<<
"棧內元素為:"
; linklist p = lq.top;
while
(p != lq.base)
return
true
;}
資料結構 棧 鏈棧
棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...
資料結構 棧之鏈棧
鏈棧 單鏈表的頭插和頭刪時間複雜度o 1 所以鏈式棧的棧頂在頭這邊 1 基於鍊錶 帶頭結點的單鏈表 實現棧先進後出的特徵 2 對於棧,必須同乙個方向入棧和出棧 3 對於鍊錶,有頭插 頭刪,尾插和尾刪 時間複雜度 o 1 不需要迴圈遍歷,比如判斷乙個數是否為10,if a 10 o n 需要迴圈遍歷,...
資料結構 鏈棧
編寫乙個程式,實現鏈棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化鏈棧s 2 判斷鏈棧s是否非空 3 依次進鏈棧元素a,b,c,d,e 4 判斷鏈棧s是否非空 5 輸出鏈棧長度 6 輸出從棧頂到棧底元素 7 輸出出鏈棧序列 8 判斷鏈棧s是否非空 9 釋放鏈棧。inclu...