資料結構與演算法 棧

2022-09-23 15:45:09 字數 642 閱讀 9957

棧和佇列是兩種在運算時要受到某些特殊限制的線性表,故也稱為限定性的資料結構。

1.概念

定義:棧是限定只能通過一端來實現資料儲存和檢索的一種線性表。

棧頂(top)是允許插入和刪除的一端。

棧底(bottom)是不允許插入和刪除的一端。

修改原則:先進後出或後進先出(last in frist out,lifo)  

2.棧的儲存結構

棧的儲存結構由順序儲存和鏈式儲存。

②棧的鏈式儲存(鏈棧):用鍊錶作為儲存結構,由於棧中元素的插入和刪除僅在棧頂一端進行,因此不必設定頭結點,鍊錶的頭指標就是棧頂指標。

3.棧的操作  

stacksize:棧的最大容量,表示系統分配給棧的最大儲存單元。

插入元素(入棧):先top+1,再插入元素。

刪除元素(出棧):先出棧,再top-1。

空棧的判斷:top=0 或 top=bottom。

求棧內元素個數:num=top-bottom。

棧滿判斷:top=stacksize。

4.棧的典型應用

表示式求值、括號匹配、遞迴函式呼叫、數制轉換等。

資料結構與演算法《棧》

概念 棧 stack 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使...

棧(資料結構與演算法)

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...

資料結構與演算法 棧

後進先出 lifo last in first out 最後插入的元素最先出來,是一種 操作受限 的線性表,只允許在端插入和刪除資料 順序棧 用陣列實現,順序棧需要動態擴容,在初始化時需要給定乙個固定大小的陣列,當棧大於固定大小時需要擴充陣列的大小。templateclass myarraystac...