232. 用栈实现队列
https://leetcode.cn/problems/implement-queue-using-stacks/
利用两个栈来实现队列,一个先存储进去的,一个存储IN栈倒出来的元素,这样就可以获取到队首了
class MyQueue { public: stack<int>in; stack<int>out; int size; MyQueue() { size=0; } void push(int x) { in.push(x); size++; } int pop() { for(int i=0;i<size;i++){ int temp=in.top(); in.pop(); out.push(temp); } int num=out.top(); out.pop(); size--; for(int i=0;i<size;i++){ int temp=out.top(); out.pop(); in.push(temp); } return num; } int peek() { for(int i=0;i<size;i++){ int temp=in.top(); in.pop(); out.push(temp); } int num=out.top(); for(int i=0;i<size;i++){ int temp=out.top(); out.pop(); in.push(temp); } return num; } bool empty() { if(size==0)return 1; return 0; } };
225. 用队列实现栈
https://leetcode.cn/problems/implement-stack-using-queues/
本题采用一个队列或两个队列进行模式即可,当采用一个队列时遍历出队再然后入队直到剩下最后一个人,单独拿出并不进行再次入队。
class MyStack { public: queue<int>qe; MyStack() { } void push(int x) { qe.push(x); } int pop() { int num=qe.back(); int size=qe.size(); for(int i=0;i<size-1;i++){ int temp=qe.front(); qe.pop(); qe.push(temp); } qe.pop(); return num; } int top() { int num=qe.back();return num; } bool empty() { return qe.empty(); } };
标签:队列,随想录,int,用栈,qe,push,232,size From: https://www.cnblogs.com/zhishikele/p/17031565.html