資料結構 3 棧和佇列

2021-07-04 23:30:24 字數 957 閱讀 2578

棧和佇列也算是 資料型別。

以為都是在首位操作,棧和佇列 克服了 線性表新增刪除需要移動大量元素的弱點。

棧僅在尾部進行插入和刪除,尾部叫做棧頂, 表頭叫做棧底。後進先出。

last in first out lifo

空棧。

插入叫入棧, 刪除元素叫出棧。

順序棧,的順序儲存結構是利用一組 位址連續的儲存單元,依次存放棧底到棧頂的元素。 top表示棧頂元素的位置,那麼 top=0就是空棧。非空棧的棧頂指標top始終在 棧頂元素的下乙個位置。

**寫的過於聚合,容易造成很高深的錯覺,其實,是不容易看出思路來的。

棧的應用

1,數值轉換

2,括號匹配的檢驗

3,行編輯程式, 棧用來做 退格功能。

4,迷宮求解。

5,表示式求值,算符優先演算法。

任何乙個表示式都是由,運算元,操作符,界限符組成。

括號就是界限符。

6,棧與 遞迴

呼叫自己的函式 成為遞迴函式。

漢諾塔問題。

函式呼叫棧:

在執行被呼叫函式前,系統要做三件事情:

1,將所有實參,返回位址傳給被調函式儲存。

2,為被呼叫函式的區域性變數分配儲存區,

3,將控制權轉移到被呼叫函式入口。

遞迴函式方便在 : 這種程式設計,不需使用者自己,而由系統來管理遞迴工作棧。

佇列就是理想的排隊。 這裡沒有插隊的人。

first in first out fifo

在一端插入,另一端刪除。

允許插入的一頭叫隊尾rear, 允許刪除的一頭叫 隊頭front。

作業佇列。

頭節點不是第乙個元素。頭節點就是頭節點。

刪除插入,應考慮邊界情況。

在非空佇列中,頭指標始終指向隊頭元素, 尾指標始終指向隊尾的下乙個位置。

《資料結構》 3棧和佇列

堆疊是限定插入和刪除操作都在表的同一端進行的線性表。特點為lifo 後進先出 堆疊的順序表示.c includetypedef struct 堆疊結構體定義 void create stack s,int msize 建立乙個能容納msize個單元的空堆疊 void destroy stack s ...

資料結構 3 棧,佇列

棧是一種特殊的線性表。插入和刪除操作都只能在棧頂進行,也就是,後進先出。其實我們程式設計,程式執行的順序,就是棧的入棧和出棧順序 當我們main方法裡呼叫func1時,會把方法main和它的引數壓到棧底,再壓入方法func1和它的引數,fun2同理,出棧就是方法實際執行的過程。這也是為什麼,main...

資料結構之(3)棧和佇列

是一種運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除運算。人們把此端稱為棧頂,棧頂的第乙個元素被稱為棧頂元素,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱為進棧或入棧,它是把該元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱為出棧或退棧,它是把棧頂元素刪除掉,使其下面...