資料結構 棧的學習

2022-03-08 02:14:55 字數 1960 閱讀 6959

棧是一種限定的線性表

比喻:裝羽毛球的盒子,

1  順序棧   2多棧共享技術 3  鏈棧  4 多棧運算

3.1,順序棧的定義:

自己的理解:不是動態的,比較死;

3.1.1進棧

注意點:要判斷是否滿.

比喻:如果羽毛球盒子滿了怎麼可能在裝?!

3.1.2出棧

注意:要判斷是是否為空

比喻:如果羽毛球盒子空了,還怎麼拿羽毛球?1!

3.1.3 進棧和出棧示意圖:

比喻:進棧如同裝羽毛球,出棧如同拿羽毛球.

3.1.4讀棧頂元素

思考:說明讀棧頂元素和退棧的處理有什麼異同?  *****

答:讀棧頂元素沒有指標的移動,而退棧有指標的移動;

比喻:拿乙個羽毛球就不需要移動,而你想拿多個當然要移動了;

3.2 多棧共享技術(2棧)

3.3 鏈棧

理解;聯絡到鍊錶.

比喻:1 鍊子 2 糖葫蘆(不能從你手拿的那方出) 3  暫時沒有想到

3.3.1進棧

注意:同樣也要判斷是否滿*****

3.3.2 出棧

注意:出棧同樣也要判斷是否為空

3.4 多棧運算

4.1 括號匹配問題

演算法理解:當遇到左括號時進棧,遇到右括號時比較;如( )

4.1.1 不合法情況:

(1) 右括號找不到棧頂左括號匹配 如 1 ({ ] ) 2  [ ] )

(2) 當讀完序列時,還有左括號在棧中.如 1 {[ ]   2 [ [ ( )

4.1.2 合法的情況:讀完序列時棧也同時空 

資料結構 鏈棧的學習

就是將棧的思想和鍊錶思想結合 include using namespace std const int maxsize 100 template struct node template class linkstack 當構造乙個空棧時 只需棧頂指標置空即可 linkstack 對於鍊錶的析構需要...

資料結構學習 棧

這一系列部落格的目的在於複習鞏固資料結構的基礎知識,為考研面試筆試做準備,所以重在原理,實踐不是重點。參考書籍有嚴蔚敏老師的 資料結構 c語言版 c c 資料結構與演算法速學速用大辭典 define stacksize 100 typedef int datatype typedef structs...

資料結構 棧 棧

可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...