資料結構之棧和佇列

2021-08-28 08:36:18 字數 802 閱讀 5467

棧和佇列是兩種重要的線性結構。從資料結構角度來看,棧和佇列也是線性表,它們是操作受限的線性表,被稱為限定性的資料結構。

棧是限定僅在表尾進行插入或刪除操作的線性表。

表尾端被稱為棧頂(top),表頭端稱為棧底(bottom),不含元素的空表稱為空棧。

棧又稱為後進先出(last in first out)的線性表(lifo結構)。

棧要記錄的資料:

(1)棧頂位置top

(2)棧最大大小size

棧的基本操作:

(1)判斷棧是否為空

(2)向棧中新增乙個值

(3)從棧中彈出乙個值

佇列只允許在表的一段進行插入,而在另一端刪除元素。

在佇列中,允許插入的一端叫做隊尾(rear),允許刪除的一端則稱為隊頭(front)。

佇列是一種先進先出(first in first out)的線性表(fifo結構)。

佇列要記錄的資料:

(1)隊頭位置head,即第乙個元素的位置

(2)隊尾位置tail,即下乙個元素要插入的位置,也即最後乙個元素的下乙個位置

(3)佇列最大大小size

佇列的基本操作:

(1)入隊

(2)出隊

(1)棧和佇列均可用陣列或鍊錶來實現。

(2)棧是後進先出,佇列是先進先出

注:除了棧和佇列之外,還有一種限定性資料結構是雙端佇列(deque)。雙端佇列是限定插入和刪除操作在標的兩端進行的線性表。

資料結構之棧和佇列

棧 stack 是限定僅在表尾進行插入和刪除操作的線性表。我們把允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 不含任何資料元素的棧稱為空棧。棧又稱為後進先出 last in first out 的線性表,簡稱lifo結構。棧的插入操作,叫做進棧,也稱壓棧 入棧。類似子彈入彈夾。...

資料結構之棧和佇列

棧是乙個非常常見的資料結構,它在計算機領域中被廣泛的使用,比如作業系統會給每個執行緒分配乙個棧。用來儲存函式呼叫時各個函式的引數,返回值以及臨時變數等。棧的特點是先進後出。通常棧是乙個不考慮排序的資料結構,我們需要o n 時間才能找到棧中的最大值或者最小值,如果想要在o 1 時間內找到棧中的最大值或...

資料結構之棧和佇列

讀自 資料結構 c語言版 嚴蔚敏 吳偉民 清華大學出版社 棧 棧是限定僅在表尾進行插入或刪除操作的線性表。因此對於棧來說,表尾端有其特殊含義,稱為棧頂 top 相應地,表頭端稱為棧底 bottom 不含元素的空表稱為空棧。後進先出lifo 棧的順序儲存表示 define stack init siz...