資料結構》嚴奶奶版本 棧(2) 鏈棧 完整原始碼

2021-10-07 07:04:11 字數 1933 閱讀 2924

//初始化棧

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...