校招面试 之 剑指offer第9-1题 用两个栈实现一个队列
Posted 我得去图书馆了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了校招面试 之 剑指offer第9-1题 用两个栈实现一个队列相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<stack> using namespace std; template <typename T> void pushQueue(stack<T> &stack1, T t){ stack1.push(t); } template<typename T> T popQueue(stack<T> &stack1, stack<T> &stack2){ // 先将stack1倒到stack2中 while(!stack1.empty()){ stack2.push(stack1.top()); stack1.pop(); } // 然后取出stack2中的栈顶元素 T targetNum = stack2.top(); stack2.pop(); // 将stack2中的元素倒回到stack1中(为了下次再做操作(入队或者出对只对stack1操作)) while(!stack2.empty()){ stack1.push(stack2.top()); stack2.pop(); } return targetNum; } // 输出 template <typename T> void printStack1(stack<T> &stack1){ while(!stack1.empty()){ cout<<stack1.top()<<" "; stack1.pop(); } } int main(){ stack<int> stack1; stack<int> stack2; // 1.入队操作 pushQueue(stack1, 100); pushQueue(stack1, 200); //2.出队操作 cout<<popQueue(stack1, stack2)<<endl; // 3.打印验证 pushQueue(stack1, 300); printStack1(stack1); system("pause"); return 0; }
以上是关于校招面试 之 剑指offer第9-1题 用两个栈实现一个队列的主要内容,如果未能解决你的问题,请参考以下文章