資料結構基礎之棧

2021-09-27 02:29:40 字數 670 閱讀 9222

棧:一種操作受限的線性表,只允許在一端插入和刪除資料。

漢諾塔你有沒有玩過,每根柱子上的碟子每次只能操作最上層的乙個,或者,你可以想象平時生活中的盤子的堆疊方式,每次我們使用時都是從最上層拿乙個,放的時候也是放在最上次,這種型別的結構就是典型的棧結果,滿足,後進先出、先進後出的特點,這也是棧的資料結構特點。

由於我們每次只能操作棧頂元素,因此說棧是操作受限的線性表。

當要操作的資料集合只涉及在一端插入和刪除資料,並滿足先進後出、後進先出性,就可首選棧。

了解了棧的基本結構,我們來看看如何實現乙個棧。

棧即可用陣列實現,也可用鍊錶來實現,陣列實現的棧叫順序棧,鍊錶實現的棧叫鏈式棧。

以下,我們用陣列來模擬一下棧的基本操作。

public class arraystack 

// 入棧操作

public boolean push(string item)

// 出棧操作

public string pop()

}

至此,棧的基本內容就結束了。

表示式求值

函式呼叫棧

括號匹配

瀏覽器的前進後退功能。

資料結構基礎之棧

資料結構之棧結構 1.棧的特點 相比於乙個普通的陣列,棧控制了操作的方法,元素只能在棧頂入棧,也只能在棧頂出棧。2.棧的用途 在深入優先搜尋 dfs 中會用到,比如現在有乙個圖如下 現在要從a出發要遍歷整張圖,那麼首先看與a相連的b d,任選乙個,比如b,那麼要先儲存a,將其壓入棧,然後遍歷b,b又...

基礎資料結構之單調棧

題目描述 給定乙個長度為n的整數數列,輸出每個數左邊第乙個比它小的數,如果不存在則輸出 1。輸入格式 第一行包含整數n,表示數列長度。第二行包含n個整數,表示整數數列。輸出格式 共一行,包含n個整數,其中第i個數表示第i個數的左邊第乙個比它小的數,如果不存在則輸出 1。資料範圍 1 n 105 1 ...

資料結構之棧(基礎實現)

1 子程式的呼叫 在跳往子程式前,會先將下個指令的位址存到堆疊中,直到子程式執行完後再將位址取出,以回到原來的程式中。2 處理遞迴呼叫 和子程式的呼叫類似,只是除了儲存下乙個指令的位址外,也將引數 區域變數等資料存入堆 棧中。3 表示式的轉換 中綴表示式轉字尾表示式 與求值 實際解決 4 二叉樹的遍...