文章目錄
- 1.stack的基本使用
- 2.應用:
1.stack的基本使用
- 頭檔案:
#include<stack>
- 向棧中壓入一個成員:
st.push(x);
- 向棧頂彈出一個元素:
st.pop();
- 判讀棧是否為空:
st.empty();
- 傳回棧頂元素,但不删除成員:
st.top();
- 傳回棧的大小:
st.size();
2.應用:
- 題目:最大新整數:這道題有很多方法可以做,用棧的話做的話思路就算是比較清晰。
- 題目:最小棧:這道題求最小棧,我們通常設定另一個棧(最小棧)和棧一一對應,規則如下:首先壓入資料,假設目前資料為newnum,壓入資料棧datastack,若最小棧minstack為空,則直接壓入。若最小棧非空,則進行比較:若newnum與minstack相等或者更小,則newnum壓入最小棧minstack,否則,重複壓入棧頂的元素到stackmin中。接着彈出資料,minstack與datastack是對應的。最後是查詢,棧頂元素是最小值。
1 1 直接壓入
2 1 棧頂元素重複壓入
1 1 直接壓入
5 3 棧頂元素重複壓入
4 3 棧頂元素重複壓入
3 3 直接壓入