天天看點

第三章 棧和隊列

第三章 棧和隊列

一、棧的基本概念

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)

操作前

繼續閱讀