資料結構 棧與佇列

2021-10-07 14:52:00 字數 800 閱讀 9203

二 佇列

是指僅限在表尾進行插入刪除操作的線性表。 特點是先進後出。

陣列的簡化, 限制了插入刪除只能在表尾進行。

1.在單鏈表的基礎上加一層限制, 只能在表尾做插入插入刪除的操作。

1.順序棧和鏈式棧的出棧(pop)和進棧(push)時間複雜度都是o(1)。

順序棧需要提前確定乙個固定長度, 可能會存在記憶體空間浪費的問題, 但是他的優勢是訪問時定位很方便。

鏈式棧要求每個元素都有指標域, 這同時也增加了一些記憶體開銷, 但是對於棧的長度無限制。

如果棧的使用過程中元素變化不可預料, 可以考慮使用鏈式棧。 如果他的變化在可控範圍內, 可以考慮使用順序棧。

是指只允許在隊尾進行插入操作, 在隊頭進行刪除操作得一種線性表。特點是先進先出。

陣列的簡化, 限制了只允許在隊尾進行插入操作, 在隊頭進行刪除操作。

1.把佇列的頭尾相接的順序儲存結構稱為迴圈佇列。

1.在單鏈表的基礎上加一層限制,只允許在隊尾進行插入操作, 在隊頭進行刪除操作。

順序佇列的出隊操作的時間複雜度是o(n),入隊操作是o(1)。

鏈式佇列的出隊操作的時間複雜度是o(1),入隊操作是o(1)。

迴圈佇列的出隊操作的時間複雜度是o(1),入隊操作是o(1)。

迴圈佇列是事先申請空間, 使用期間不釋放。迴圈佇列必須要有乙個固定的長度, 儲存的元素數量有限制,以及空間浪費的問題。

鏈式佇列不需要提前申請空間, 不存在元素數量限制問題, 但是他需要額外的指標域,需要占用一定的記憶體空間。

如果佇列長度可以確定的情況下可以使用迴圈佇列, 如果無法估計長度, 可以使用鏈式佇列。

資料結構 棧與佇列

題目 1.編寫函式,採用鏈式儲存實現棧的初始化 入棧 出棧操作 2.編寫函式,採用順序儲存實現棧的初始化 入棧 出棧操作 3.編寫函式,採用鏈式儲存實現佇列的初始化 入隊 出隊操作 4.編寫函式,採用順序儲存實現佇列的初始化 入隊 出隊操作 5.編寫乙個主函式,在主函式中設計乙個簡單的選單,分別除錯...

資料結構 棧與佇列

棧的原則是後進先出,即插入與刪除元素均在棧頂進行。獲取棧頂元素 s.top 佇列的原則是先進先出,即插入資料在隊尾進行,刪除資料在隊頭進行。獲取隊頭元素 q.front 思路 用兩個棧,乙個棧用來進隊,乙個棧用來出隊,當資料進入佇列的時候,我們將其壓入乙個棧,當資料出隊的時候,我們將儲存在棧內的資料...

資料結構 棧與佇列

1.順序棧 基本操作 typedef int elemtype 定義 順序棧 typedef struct sqstack 判空 bool stackempty sqstack s 進棧 bool push sqstack s elemtype x 出棧操作 bool pop sqstack s e...