資料結構 棧

2021-08-28 20:46:23 字數 510 閱讀 8940

王爭據結構筆記(08)

1、棧結構:後進者顯出,先進者後出。棧是一種操作受限的線性表,只允許在一端插入和刪除資料

2、棧主要包含的操作:入棧和出棧。

3、用陣列實現的棧叫做順序棧,用鍊錶實現的棧叫做鏈式棧。

4、無論是鏈式棧還是順序棧,入棧和出棧空間複雜度都是o(1),時間複雜度也是o(1)。

動態擴容的順序棧出棧時間複雜度為o(1)。當棧中存在空閒空間的時候,入棧操作的時間複雜度為o(1)。當空間不夠時,需要重新申請記憶體和資料搬移,所以時間複雜度為o(n)。入棧操作的均攤時間複雜度為o(1)。

5、棧的實際醫用:

a) 棧在函式呼叫中的應用:記憶體被組織成棧的結構,儲存函式呼叫時的臨時變數。每進入乙個函式就會將臨時變數作為乙個棧幀入棧,當被呼叫函式直線完成,返回後,將這個函式對應的棧幀出棧。

b)棧在表示式求值中的應用:儲存運算元的棧和儲存運算子的棧。

c)棧在括號匹配中的應用:從左到右掃瞄字串,掃瞄到左括號的時候,將其壓棧,掃瞄到右括號的時候,從棧頂將左括號取出。

資料結構 棧 棧

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

資料結構 棧

例子 棧是一種被限制在只能在表的一端進行插入和刪除運算的線性表。區域性變數是用棧來儲存的 可以進行插入和刪除的一端稱為 棧頂 top 另一端稱為 棧底 bottom 當表中沒有元素時 表長為0的棧 稱為 空棧。棧的修改是按 後進先出的原則進行,因此棧被稱為後進先出 last in first out...

資料結構 棧

1.棧stack 是限定僅在表尾進行刪除和插入操作的線性表。允許插入刪除的一端叫做棧頂top,另外一端叫做棧底bottom。棧又稱為後進先出 lifo 的線性表。即表尾是指棧頂。2.順序棧 定義 top指向可存入元素的位置。typedef struct stacktypestacktype 插入 進...