部落格229 資料結構 最小棧

2021-10-05 16:38:24 字數 644 閱讀 2643

內容:實現乙個棧,使得這個棧能夠在o(1)時間內得到裡面最小元素

思路:

1、這時候使用兩個棧來配合實現,乙個儲存資料,以實現普通棧的功能

2、另乙個棧作為輔助,每次壓入的都是更小的數,否則壓入當前棧頂元素,這樣這個輔助棧出棧的元素

一定是最小的

**:

#include

#include

#include

using namespace std;

template

class min_stack

else

} t pop()

temp = data_stack.

top();

data_stack.

pop();

min_stack.

pop();

return temp;

} t get_min()

return min_stack.

top();

}};//測試:

intmain()

資料結構問題 最小棧

設計乙個支援push,pop,top操作,並能在常數時間內檢索到最小元素的棧。使用stack實現棧的基本操作,同時建立乙個輔助棧用於儲存最小元素。輔助棧在push的時候,只有輔助棧為空,或者輔助棧棧頂大於等於push的數字時,才向其中加入資料。保證輔助棧棧頂是最小值 輔助棧在pop的時候,只有輔助棧...

資料結構 棧 棧

可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...

資料結構 棧

例子 棧是一種被限制在只能在表的一端進行插入和刪除運算的線性表。區域性變數是用棧來儲存的 可以進行插入和刪除的一端稱為 棧頂 top 另一端稱為 棧底 bottom 當表中沒有元素時 表長為0的棧 稱為 空棧。棧的修改是按 後進先出的原則進行,因此棧被稱為後進先出 last in first out...