棧的基本運算

2021-04-28 14:02:41 字數 928 閱讀 7436

棧和佇列是兩種特殊的線性表,它們的邏輯結構和線性表相同,只是其運算規則較線性表有更多的限制,故又稱它們為運算受限的線性表。棧和佇列被廣泛應用於各種程式設計中。

棧的定義及基本運算

1、棧的定義

棧(stack)是限制僅在表的一端進行插入和刪除運算的線性表。

(1)通常稱插入、刪除的這一端為棧頂(top),另一端稱為棧底(bottom)。

(2)當表中沒有元素時稱為空棧

(3)棧為後進先出(last in first out)的線性表,簡稱為lifo表

棧的修改是按後進先出的原則進行。每次刪除(退棧)的總是當前棧中"最新"的元素,即最後插入(進棧)的元素,而最先插入的是被放在棧的底部,要到最後才能刪除。

【示例】元素是以a1,a2,…,an的順序進棧,退棧的次序卻是an,an-1,…,a1。

2、棧的基本運算

(1)initstack(s)

構造乙個空棧s。

(2)stackempty(s)

判棧空。若s為空棧,則返回true,否則返回false。

(3)stackfull(s)

判棧滿。若s為滿棧,則返回true,否則返回false。

注意:該運算只適用於棧的順序儲存結構。

(4)push(s,x)

進棧。若棧s不滿,則將元素x插入s的棧頂。

(5)pop(s)

退棧。若棧s非空,則將s的棧頂元素刪去,並返回該元素。

(6)stacktop(s)

取棧頂元素。若棧s非空,則返回棧頂元素,但不改變棧的狀態。

實現順序棧基本運算 棧

c語言實現順序棧的入棧 出棧 棧元素讀取操作 1 include 2 include 3 define maxsize 20 4 define maxnum 10 5 define elemtype int 6 typedef struct sqstack 7 sqstack 儲存結構型別名 111...

Problem D 棧的基本運算(棧和佇列)

time limit 1 sec memory limit 128 mb submit 43 solved 15 submit status web board 編寫乙個程式,實現順序棧的各種基本運算,主函式已給出,請補充每一種方法。1 初始化棧s 2 判斷棧s是否非空 3 進棧乙個元素 4 判讀棧...

Problem D 棧的基本運算(棧和佇列)

time limit 1 sec memory limit 128 mb submit 66 solved 24 submit status web board 編寫乙個程式,實現順序棧的各種基本運算,主函式已給出,請補充每一種方法。1 初始化棧s 2 判斷棧s是否非空 3 進棧乙個元素 4 判讀棧...