#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; }
运行结果:
原文地址:https://www.cnblogs.com/xuelisheng/p/9357317.html
时间: 2024-10-10 03:36:15