學習筆記(2)——棧和隊列

棧和隊列都是線性結構,是特殊的線性表。

棧:

僅在表尾進行插入或刪除元素的操作。表尾稱爲棧頂,表頭稱爲棧底。不含元素的空表爲空棧。又稱爲”先進後出“線性表。

棧有兩種存儲結構:順序存儲和鏈式存儲(與線性表類似)

設置top指針指向棧頂位置,base指針指向棧底位置,當top = base 時,棧爲空棧。使用C語言時,不應限定棧的最大容量:先分配一個基本容量,當空間不夠使用時,使用realloc命令進行空間擴充。

使用時,結合實際問題,利用”先進後出“的性質。


隊列

僅在表的一段插入數據元素(隊尾),在標的另一端刪除數據元素(隊頭)。“先進先出”的線性表。

還有“雙端隊列”的特殊形式:限定插入和刪除操作在表的兩端進行的線性表。實際應用中有:輸入受限的雙端隊列(一個端點允許插入和刪除、另一個端點只允許刪除);輸出受限的雙端列表(一個端點允許插入和刪除、另一個端點只允許插入)。

鏈隊列:用鏈表表示的隊列。需要兩個分別指向隊頭和隊尾的指針。可以增設一個頭結點,頭結點指向隊頭。

循環隊列:用順序存儲結構實現的隊列。將連續的存儲空間想象成首尾相連的圓環,同樣有兩個分別指向隊頭和隊尾的指針。當頭指針與尾指針指向同一個存儲位置時,隊列爲空隊列。

發佈了17 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章