C++:用兩個棧來實現一個佇列,完成佇列的Push和Pop操作
阿新 • • 發佈:2019-01-03
problem
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。
analysis
class Solution { public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()){ while(stack1.empty()==false){ int node=stack1.top(); stack2.push(node); stack1.pop(); } } int node=stack2.top(); stack2.pop(); return node; } private: stack<int> stack1; stack<int> stack2; };
其中棧是後進先出,佇列是先進先出,在push操作的時候,我們先把資料壓到一個棧裡,pop操作的時候,我們需要改變一下前一個棧的順序,做法很簡單,把第一個棧裡的資料壓到第二個棧裡就把順序調回來了,這裡注意程式設計的幾個判斷空的條件。
參考文獻
[1].用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。佇列中的元素為int型別.
http://blog.csdn.net/lz_94/article/details/50838343