陣列模擬棧

2021-10-01 09:08:09 字數 1004 閱讀 1341

在資料結構中棧是一種線性結構也是有序列表,棧的特點就是 (filo)「先進後出」。

棧是限制線性表中元素的增加和刪除只能在一端進行的特殊線性表,變化的一端為棧頂(top)固定的一端棧底(bottom)。

在學習棧時我們可以把它想象成乙個桶,依次放入東西,在取東西時只能從上面依次取出,不可能直接取出下面的東西。

// 棧空

public

boolean

isempty()

// 棧滿

public

boolean

isfull()

// 入棧

public

void

push

(int value)

top++

; stack[top]

= value;

}// 出棧

public

intpop()

int res = stack[top]

; top--

;return res;

}// 顯示

public

void

show()

for(

int i = top; i >=

0; i--)}

}

public

class

arraystackdemo

}

執行結果:

陣列模擬棧

棧的結構相當於生活中常見的一端封閉,一端開頭的容器,如下圖 底部封死後,只能通過上邊的埠來訪問東西,即先放入的後取出。棧就是這樣一種結構。棧 是一種線性資料結構,並且棧中的元素只能先入後出,並且最早進入的元素存放的位置叫棧底 封閉端 最後進入的元素存放的位置叫棧頂 開口端 可以通過陣列或者鍊錶來實現...

雞蛋棧(陣列模擬棧)

繼佇列之後,我們又來學習一種新的資料結構 棧。將佇列的頭部封閉後,就構成了棧這種資料結構,原來佇列頭部就是棧底,原來佇列的尾部就是棧頂。棧與佇列的不同就在於棧的底端是封閉的。所以,棧的插入和刪除操作只能在棧的一端進行,即棧頂。棧的插入操作稱為入棧,刪除操作稱為出棧。底 頂 底 頂 第二行輸入乙個數n...

單調棧(陣列模擬)

1 n 1e5 1 數列中元素 1e9 輸入樣例 53 4 2 7 5 輸出樣例 1 3 1 2 2 思路 對於這種題顯然是可以暴力解決的,但要是想要優化一下就得思考一下。本題的意思是找到離某個數a z 最近的左邊的小於它的數 那麼這裡面就有個關係了 可以用乙個棧來存這些左邊的數,若x y z,且a...