棧的定義及其基本運算

  棧的定義及其基本運算
棧是限定僅在表的一端進行插入或刪除的線性表。通常稱允許插入、刪除的這一端爲
棧頂(Top),相應地,另一端稱爲棧底(Bottom)。不含元素的棧稱爲空棧。
假設棧 S=(a1,a2,…,an),則稱a1 爲棧底元素,an 爲棧頂元素,如圖 所示。根據
棧的定義可知,棧頂元素總是最後入棧並且是最先出棧的;棧底元素總是最先入棧並且是
最後出棧的。即棧是按後進先出的原則進行的。因此,棧又稱爲後進先出的線性表(簡稱
LIFO 結構)。
 

棧的基本運算有以下幾種。
(1) 初始化Init_Stack(&S)。
初始條件:棧 S 不存在。
運算結果:構造一個空棧 S。
(2) 判棧空Empty_Stack(&S)。
初始條件:棧 S 已存在。
運算結果:若 S 爲空棧,則返回1,否則返回0。
(3) 入棧 Push_Stack(&S,x)。
初始條件:棧 S 已存在。
運算結果:插入一個元素 x 爲新的棧頂元素,棧發生變化。
(4) 出棧Pop_Stack(&S,&x)。
初始條件:棧 S 存在且非空。
運算結果:刪除棧 S 的棧頂元素,並將其值通過參數x 返回,棧發生變化。
(5) 讀棧頂元素Top_Stack(&S,&x)。
初始條件:棧 S 存在且非空。
運算結果:讀取棧 S 的棧頂元素,並將其值通過參數x 返回,棧不變。
(6) 銷燬棧Destroy_Stack(&S)。
初始條件:棧 S 已存在。
運算結果:棧 S 被銷燬。
(7) 清空棧Clear_Stack(&S)。
初始條件:棧 S 已存在。
運算結果:棧 S 被清爲空棧。
(8) 求棧的長度Length_Stack(&S)。
初始條件:棧 S 已存在。
運算結果:返回棧 S 中的元素個數,即棧的長度。

 

原文鏈接 : http://www.57itsq.com/read.php?tid-2101.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章