大話資料結構(四) 棧和佇列

2021-06-21 00:51:34 字數 567 閱讀 4700

棧:一種線性表,限定只能在表尾進行插入和刪除的操作。這裡的表尾指的是棧頂,lifo結構。

兩棧共享空間的資料結構一般用在兩個棧的空間需求有相反關係時,也就是乙個棧在增長時另乙個棧在縮短的情況,但是前提是兩個棧具有相同的資料型別。

迭代和遞迴:迭代使用的是迴圈結構,遞迴使用的是選擇結構。遞迴必須至少有乙個條件,當條件滿足時,遞迴不再進行。

中綴表示式轉化為字尾表示式(逆波蘭表示,rpn)

佇列:只允許在一端進行插入操作,在另一端進行刪除操作的線性表。fifo

迴圈佇列:解決佇列的假溢位。為了避免陣列插入和刪除時需要移動資料,於是引入了迴圈佇列,是的隊頭和隊尾可以在陣列中迴圈變化。解決了移動資料的時間損耗,使得本來插入和刪除是o(n)的時間複雜度變成了o(1)。

兩種佇列滿的判斷:

1  有標誌位flag,此時滿佇列沒有空餘的元素空間;

2  可以保留乙個元素空間,此時的佇列滿的條件:(rear+1)%queuesize = = front;

計算佇列長度的公式:(rear-front+queuesize)%queuesize

大話資料結構讀書筆記(四) 棧和佇列

四 棧和佇列 棧 是限定僅在表尾進行插入和刪除操作的線性表。把允許插入和刪除的一端稱為棧頂,另一端稱為棧底,不含任何資料元素的棧稱為空棧。棧又稱為後進先出的線性表,簡稱lifo結構。線性表就有線性表的性質 棧的插入操作,叫做進棧,也稱壓棧 入棧。棧的刪除操作,叫做出棧,也稱彈棧。通項計算c 2n,n...

大話資料結構 棧與佇列

文章知識點來至於大話資料結構裡邊章節知識,這篇主要介紹棧與佇列在計算機中儲存形式,以及在某些演算法領域中對棧和佇列的相關應用。章節最後介紹了著名的逆波蘭表示式,以及通過演算法來實現該表示式的運算過程。在實現 的同時新增了流程圖。相關 原始碼請檢視文章最後。1 棧結構定義 2 棧的順序儲存 3 兩棧共...

資料結構 四 棧和佇列

adt 棧 stack data 同線性表。元素具有相同的型別,相鄰元素具有前驅和後堆關係。operation initstack s 初始化操作.建立乙個空棧s。destroystack s 若棧存在,則銷毀它。clearstack s 將棧清空。stackempty s 若棧為空,返回true,...