用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。
思路:兩個棧 ,棧a專門用來表示push ,棧b專門用來表示pop,當需要push的時候,應該先檢查棧b裡面還有沒有之前留著的資料,如果有,應該先把b中的資料全部轉移到a中,再進行push操作,這樣才可以不改變他們的相對出入順序。同理當需要pop的時候,先檢查棧a中是否還存在資料,如果有,全部轉移到棧b中,再進行pop操作。(第乙個不用看解題自己做出來的題)
class
solution
stack1.
push
(node);}
intpop()
int node2 = stack2.
top();
stack2.
pop();
return node2;
}private
: stack<
int> stack1;
stack<
int> stack2;
};
劍指offer 用兩個棧實現佇列
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...
用兩個棧實現佇列《劍指offer
題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 將元素入隊時壓入乙個棧中,隨後通過另乙個棧出隊 1 使用stack容器定義兩個棧 stack stack1 stack stack2 2 入隊 stack1.push node node為入隊元素 ...
劍指offer 用兩個棧實現佇列
記錄 劍指offer 上的演算法題。題目描述如下 佇列的宣告如下 template class cqueue cqueue t deletehead bool empty private stack stack1 stack stack2 實現的 如下 templatet stack1.push n...