資料結構(棧和佇列)

2022-07-15 19:06:14 字數 923 閱讀 2475

一、棧(stack)

基本概念:只允許在一端進行插入或刪除操作的線性表。

棧頂(top):線性表語序進行插入和刪除的那一端。

棧底(bottom):固定的,不允許進行插入和刪除的那一端。

空棧:不含任何元素的的空表。

>>>共享棧:利用棧底位置相對不變的特性,可以讓兩個順序棧共享乙個一維資料空間,將兩個棧的棧底分別設定在共享空間的兩端,兩個棧頂向共享空間的中間延伸。

棧的鏈式儲存結構:採用鏈式儲存的棧成為鏈棧,鏈棧的優點是便於多個棧共享儲存空間和提高其效率,且不存在棧滿上溢的情況,通常採用單鏈表實現,並規定所有操作都是在單鏈表的表頭的進行的。採用鏈式儲存,便於節點的插入和刪除,鏈棧的操作與鍊錶類似。

二、佇列(quene)

基本概念:佇列簡稱隊,也是一種操作受限的線性表,只允許在表的一端進行插入,而在表的另一端進行刪除,向佇列中插入元素成為入隊會進隊,刪除元素成為出隊或離隊。其操作的特性是先進先出(first in first out,fifo),故又成為先進先出的線性表。

佇列的儲存結構:佇列的順序實現是指分配一塊的儲存單元存放在佇列中元素,並附設兩個指標front和rear分別指示隊頭元素和隊尾元素的位置。

>>>佇列的鏈式儲存結構佇列的鏈式表成為鏈式表示成為鏈佇列,它實際上是乙個同事帶有隊頭指標和隊尾指標的單鏈表,頭指標指向隊頭節點,尾指標指向隊尾節點。

雙端佇列:雙端佇列指允許兩端都可以進行入隊和出隊操作的佇列。包括輸出受限的雙端佇列:允許在一端進行插入和刪除;輸入受限的雙端佇列:允許在一端進行插入和刪除。

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...

資料結構 棧和佇列

本章的基本內容是 兩種特殊的線性表 棧和佇列 從資料結構角度看,棧和佇列是操作受限的線性表,他們的邏輯結構相同。從抽象資料型別角度看,棧和佇列是兩種重要的抽象資料型別。p棧 限定僅在表的一端進行插入和刪除操作的線性表。p允許插入和刪除的一端稱為棧頂,另一端稱為棧底。p空棧 不含任何資料元素的棧。a ...

資料結構 棧和佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop node stack2.top stack2.pop return node private stack stack1 stack stack2 大家都知道斐波那契數列,現...