王爭據結構筆記(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 插入 進...