設計乙個支援push
,pop
,top
操作,並能在常數時間內檢索到最小元素的棧。
使用stack實現棧的基本操作,同時建立乙個輔助棧用於儲存最小元素。
輔助棧在push的時候,只有輔助棧為空,或者輔助棧棧頂大於等於push的數字時,才向其中加入資料。(保證輔助棧棧頂是最小值)。
輔助棧在pop的時候,只有輔助棧棧頂等於存放資料的棧的棧頂資料時,才pop。(確保推出的是最小值)
public class minstack
public void push(int x)
}public void pop()
}public int top()
public int getmin()
}
部落格229 資料結構 最小棧
內容 實現乙個棧,使得這個棧能夠在o 1 時間內得到裡面最小元素 思路 1 這時候使用兩個棧來配合實現,乙個儲存資料,以實現普通棧的功能 2 另乙個棧作為輔助,每次壓入的都是更小的數,否則壓入當前棧頂元素,這樣這個輔助棧出棧的元素 一定是最小的 include include include usi...
資料結構 棧 棧
可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...
資料結構 棧
例子 棧是一種被限制在只能在表的一端進行插入和刪除運算的線性表。區域性變數是用棧來儲存的 可以進行插入和刪除的一端稱為 棧頂 top 另一端稱為 棧底 bottom 當表中沒有元素時 表長為0的棧 稱為 空棧。棧的修改是按 後進先出的原則進行,因此棧被稱為後進先出 last in first out...