棧是一種限定的線性表
比喻:裝羽毛球的盒子,
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...