【校招面試 之 劍指offer】第9-2題 用兩個隊列實現一個棧
阿新 • • 發佈:2018-07-24
實現 bsp ont 入隊 out == end nbsp img
#include<iostream> #include<queue> using namespace std; // 對於出棧解決的思路是:將queue1的元素除了最後一個外全部放到queue2中,然後再pop出queue1的最後一個元素... template<typename T> void popStack(queue<T> &queue1, queue<T> &queue2){ if(queue1.size() == 0) return; // 將queue1中的元素除了最後一個元素外,依次入隊queue2中 while(queue1.size() - 1){ queue2.push(queue1.front()); queue1.pop(); } cout<<"出隊元素為:"<<queue1.front()<<endl; queue1.pop(); // 將queue2的元素放回到queue1中 while(queue2.size()){ queue1.push(queue2.front()); queue2.pop(); } } template<typename T> void printStack(queue<T> &queue1){ while(!queue1.empty()){ cout<<queue1.front()<<" "; queue1.pop(); } } int main(){ queue<int> queue1; queue<int> queue2; // 1.實現入棧操作 queue1.push(100); queue1.push(200); queue1.push(300); // 2.實現出棧操作 popStack(queue1, queue2); queue1.push(400); queue1.push(500); popStack(queue1, queue2); printStack(queue1); system("pause"); return 0; }
運行結果:
【校招面試 之 劍指offer】第9-2題 用兩個隊列實現一個棧