校招面试 之 剑指offer第9-2题 用两个队列实现一个栈
Posted 我得去图书馆了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了校招面试 之 剑指offer第9-2题 用两个队列实现一个栈相关的知识,希望对你有一定的参考价值。
#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题 用两个队列实现一个栈的主要内容,如果未能解决你的问题,请参考以下文章