資料結構——第二章棧、佇列:01棧
阿新 • • 發佈:2018-10-31
1.棧和佇列是限定插入和刪除只能在表的端點進行的線性表。棧是後進先出的資料結構,佇列是先進先出的資料結構(棧相當於一個瓶子,向瓶內放的物品被壓到瓶子底部,只有等上面的所有物品都出來了,下面的才能出來,這是先進後出;佇列相當於一個隧道,火車向隧道內開不能回頭,車頭先進去也先出來,這是先進先出)。
2.棧的型別定義:
ADT Stack
{
資料物件:D = {ai | ai ∈ ElemSet,i = 1, 2, ..., n, n >= 0}
資料關係:R1 = {<ai-1, ai ∈ D,i=2, ..., n>}(約定an端為棧頂,a1端為棧底)
基本操作:
①InitStack(&S)——初始化棧
②Destroy(&S)——銷燬棧
③StackLength(S)——求棧中元素個數
④StackEmpty(S)——判斷棧是否為空
⑤GetTop(S, &e)——返回棧底元素
⑥ClearStack(&S)——清空棧
⑦Push(&S, e)——進棧
⑧Pop(&S, &e)——出棧
⑨StackTravers(S, visit())——對棧進行遍歷
} ADT Stack
3.棧的應用舉例:
(1)數制轉換:
(2)括號匹配檢驗:
(3)行編輯程式問題:
(4)表示式求值:
(5)實現遞迴操作:
4.
5.
6.
7.
8.
9.
10.