資料結構二之棧和佇列

weixin_33850890發表於2018-05-23

一丶棧的定義

棧是限定僅在表尾進行插入和刪除操作的線性表。其中允許插入和刪除的一端稱為棧頂(top),另一端稱為棧底(bottom),不含任何元素的棧稱為空棧。

棧又稱先進後出的線性表:


3163615-34f1b5a82c4e19d8.png
1-1丶鏈式儲存結構的棧

鏈棧的入棧操作:


3163615-f2a1c681bf7267f4.png
鏈棧的入棧操作

鏈棧的出棧操作:


3163615-20a6f4b175e4ac1f.png
鏈棧的出棧操作
1-2丶棧的經典應用--逆波蘭表示式法

我們平時進行四則運算時採用的四則運算表示式其實是中綴表示式,而計算機識別四則運算時會將中綴表示式通過入棧彈棧操作轉變為字尾表示式,


3163615-aaeddf04203d9042.png
中綴表示式轉字尾表示式

佇列

一丶佇列的定義

佇列(queue)是隻允許在一端進行插入操作,而在另外一端進行刪除操作的線性表,插入的一端為隊尾,刪除的一端為隊頭。如圖所示:

3163615-9db1a512afc88f0f.png
佇列

1-1丶佇列的鏈式儲存結構

佇列的鏈式儲存結構如圖所示,其本質就是隻能尾進頭出的線性單連結串列。


3163615-b09151da5bbe0aeb.png
佇列的鏈式儲存結構

1-2丶佇列的順序儲存結構

佇列的順序儲存結構如圖所示,其缺點是:出隊複雜度高,容易假溢位。


3163615-06ccc4ad416bbabf.png
佇列的順序儲存結構

相關文章