第三章 棧和佇列

2021-09-26 05:12:15 字數 680 閱讀 5089

一、棧的基本概念

1、棧的定義:

:只允許在一段進行插入和刪除的限定性線性表。

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

棧低:不允許插入和刪除的那一端。

空棧:不含任何元素的空表。

根據上述定義,每次進棧的元素都被放在原棧頂元素之上而成為新的棧頂,而每次出棧的總是當前棧中「最新」的元素,即最後進棧的元素。在下圖所示的棧中,元素是以a1,a2,a3,…,an的順序進棧的,而退棧的次序卻是an,…,a3,a2,a1。棧的修改是按後進先出的原則進行的。因此,棧又稱為後進先出的線性表,簡稱為lifo表。

2、棧的抽象資料型別

棧的抽象資料型別定義

adt stack

資料元素:可以是任意型別的資料,但必須屬於同乙個資料物件。

結構關係:棧中資料元素之間是線性關係。

基本操作:

(1)initstack(s)

操作前提:s為未初始化的棧。

操作結果:將s初始化為空棧。

(2)clearstack(s)

操作前提:棧s已經存在。

操作結果:將棧s置成空棧。

(3)isempty(s)

操作前

第三章 棧和佇列

棧和佇列 一 棧 1 棧的定義 棧是限定僅在表尾進行插入和刪除操作的線性表,允許插入和刪除的一端稱為棧頂,另一端稱為棧底,不含任何資料元素的棧稱為空棧。2 在任何時候出棧的元素都只能是棧頂元素,即最後最後入棧者最先出棧。所以棧中元素除了具有線性關係外,還具有後進先出的特性。3 棧的抽象資料型別定義 ...

第三章 棧和佇列

棧和佇列是兩種常用的資料結構,同時又是操作受限的線性表,也是兩種重要的抽象資料型別。1 1棧是限定僅在表尾進行插入和刪除操作的線性表。棧中元素具有線性關係和後進先出的特性。2雖然對插入和刪除操作的位置限制減少了棧的靈活性,但同時也使得棧的操作更有效更容易實現。3棧的儲存結構分兩種,一種是順序儲存結構...

第三章 棧和佇列

第三章棧和佇列 一 棧1.棧 限定僅在表尾進行插入和刪除操作的線性表 允許插入和刪除的一端稱為棧頂 另一端稱為棧底 2.空棧 不含任何資料元素的棧。3.在任何時候出棧的元素都只能是棧頂元素,即最後入棧者最先出棧,具有後進先出的特性。4.棧的抽象資料型別定義 1 push 輸入 元素值 x 輸出 如果...