本文主要是介绍[力扣题解]225. 用队列实现栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:225. 用队列实现栈
思路
用一个队列模拟栈;
假设有数字:1,2,3;
pop
队列里是这样的存的:3,2,1;
作为一个栈,应该弹出最后进来的那一个3
;
把队列里1
和2
塞进尾端,变成:2,1,3,再把3
弹出来;
写其他函数的时候可以复用自己写过的函数;
代码
class MyStack {
public:MyStack() {}queue<int> que;void push(int x) {que.push(x);}int pop() {int size = que.size(), temp;size--;while(size){size--;temp = que.front();que.pop();que.push(temp); // 塞进去}temp = que.front();que.pop();return temp;} int top() {return que.back();}bool empty() {return que.empty();}
};/*** Your MyStack object will be instantiated and called as such:* MyStack* obj = new MyStack();* obj->push(x);* int param_2 = obj->pop();* int param_3 = obj->top();* bool param_4 = obj->empty();*/
这篇关于[力扣题解]225. 用队列实现栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!