1. 程式人生 > 其它 >第四章 棧與佇列

第四章 棧與佇列

考試要求: 掌握棧、佇列的邏輯結構,以及基本操作; 掌握順序儲存結構對棧和佇列基本操作的實現; 掌握鏈式儲存結構對棧和佇列基本操作的實現; 掌握順序儲存結構中實現迴圈佇列的具體要求; 理解遞迴呼叫和棧之間的關係; 掌握棧和佇列的經典應用。

1.棧的定義

  定義:棧是隻允許在一端進行插入和刪除操作的線性表。後進先出(LIFO)

  棧頂:線性表允許進行插入和刪除的那一端。

  棧底:固定的,不允許進行插入和刪除的那一端。

  卡特蘭數:n個元素進棧,一共會有C(n,2n)/(n+1)種不同的出棧結果。

2.佇列的定義

  定義:佇列也是一種操作受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除。先進先出(FIFO)

  隊頭:允許進行刪除的一端,又稱為隊首。

  隊尾:允許進行插入的一端。

3.順序棧的定義及特點

  定義:採用順序儲存的棧稱為順序棧,它是利用一組連續的儲存單元存放自棧底到棧頂的資料元素,同時附設一個指標(top)指示當前棧頂元素的位置。

  特點:當對棧的最大使用空間估計不足時,有可能會發生棧上溢。

4.鏈式棧的定義及特點

  定義:採用鏈式儲存的棧稱為鏈棧。

  特點:優點是便於多個棧共享儲存空間和提高其效率,且不存在棧滿上溢的情況。在表頭進行插入和刪除。

5.順序佇列的定義及特點

  定義:佇列的順序實現是指分配一塊連續的儲存單元存放佇列中的元素,並附設兩個指標:隊頭指標front指向隊頭元素,隊尾指標rear指向隊尾元素的下一個位置。

  特點:連續的儲存單元存放。

6.鏈式佇列的定義及特點

  定義:佇列的鏈式表示為鏈佇列,它實際上是一個同時帶有隊頭指標和隊尾指標的單鏈表。頭指標指向隊頭結點,尾指標指向隊尾結點,即單鏈表的最後一個結點。

  特點:不存在佇列溢位的情況。

7.棧的應用

  (1)棧在括號匹配中的應用

  (2)棧在遞迴中的應用

8.佇列的應用

  (1)佇列在層次遍歷中的應用

  (2)佇列在計算機系統中的應用

考試要求

掌握棧、佇列的邏輯結構,以及基本操作;

掌握順序儲存結構對棧和佇列基本操作的實現;

掌握鏈式儲存結構對棧和佇列基本操作的實現;

掌握順序儲存結構中實現迴圈佇列的具體要求;

理解遞迴呼叫和棧之間的關係;

掌握棧和佇列的經典應用。