資料結構 棧和佇列

2021-10-07 10:22:13 字數 1171 閱讀 2426

棧的應用

佇列的定義和特點

佇列的常見應用

棧(stack)是乙個特殊的線性表,是限定僅在一端(通常是表尾)進行插入和刪除操作的線性表。表尾的一端有其特殊含義,稱為棧頂(top),相應地,表頭稱為棧底(bottom)

棧的特點就是 後進先出(lifo, last in first out)。

為了更好的理解,我們可以把棧想象成手電筒、子彈夾。像手電筒裝電池,後進去的電池先拿出來。

子彈夾也是,最後填充的子彈在子彈夾的頂端,最先填充的子彈在尾端。

棧的相關概念

棧的示意圖

由於棧的操作具有 後進先出 的固有特性,使得棧成為程式設計中的有用工具。另外,如果問題解的過程具有 後進先出 的天然特性話,則求解的演算法中也必然需要利用。例如:

數制轉換

表示式求值

括號匹配的檢驗八皇后問題

行編輯程式函式呼叫

迷宮求解遞迴呼叫的實現

在佇列中,只允許在一端進行插入,而在另一端刪除元素。允許插入的一端叫做隊尾(rear),允許刪除的一端則稱為隊頭(front)

佇列的特點就是 先進先出(fifo, first in first out)。

佇列的示意圖

由於佇列的操作具有 先進先出 的特性,使得佇列成為程式設計中解決突似排隊問題的有用工具。

例如:

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 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 大家都知道斐波那契數列,現...