陣列模擬棧

2021-10-09 07:01:21 字數 1309 閱讀 4147

棧的結構相當於生活中常見的一端封閉,一端開頭的容器,如下圖

底部封死後,只能通過上邊的埠來訪問東西,即先放入的後取出。棧就是這樣一種結構。

棧:是一種線性資料結構,並且棧中的元素只能先入後出,並且最早進入的元素存放的位置叫棧底(封閉端),最後進入的元素存放的位置叫棧頂(開口端)。可以通過陣列或者鍊錶來實現棧。

* 通過陣列來模擬棧

*/class

arraystack

/** * 判斷是否滿棧

* @return

*/public

boolean

isfull()

/** * 判斷是否空棧

* @return

*/public

boolean

isempty()

/** * 入棧

* @param data

*/public

void

push

(int data)

stack[top]

= data;

top++;}

/** * 出棧

*/public

intpop()

top--

;return stack[top];}

public

void

showstack()

for(

int i= top-

1; i>=

0; i--)}

}

public

class

arraystackdemo

catch

(exception e)

break

;case

"exit"

: scanner.

close()

; loop =

false

; system.out.

println

("程式退出~~~");

break

;default

:break;}}}}

陣列模擬棧

在資料結構中棧是一種線性結構也是有序列表,棧的特點就是 filo 先進後出 棧是限制線性表中元素的增加和刪除只能在一端進行的特殊線性表,變化的一端為棧頂 top 固定的一端棧底 bottom 在學習棧時我們可以把它想象成乙個桶,依次放入東西,在取東西時只能從上面依次取出,不可能直接取出下面的東西。棧...

雞蛋棧(陣列模擬棧)

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

單調棧(陣列模擬)

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