leetcode225. 用队列实现栈
作者:互联网
一:题目
二:上码
// class MyStack {
// private:
// queue<int> q;
// public:
// /** Initialize your data structure here. */
// MyStack() {
// }
// /** Push element x onto stack. */
// void push(int x) {
// //后进 先出 反转队列 将新元素插到 第一个
// int size = q.size();//还没插入新元素之前
// q.push(x);
// while(size--)//保证插入的第一个元素在队列的首位
// {
// int temp = q.front();
// q.pop();
// q.push(temp);//插入到队尾
// }
// }
// /** Removes the element on top of the stack and returns that element. */
// int pop() {
// int popele = q.front();//访问栈顶元素
// q.pop();//删除栈顶元素
// return popele;
// }
// /** Get the top element. */
// int top() {
// return q.front();
// }
// /** Returns whether the stack is empty. */
// bool empty() {
// return q.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();
// */
class MyStack {
private:
/**
思路:这里我们不能用两个都队列(一个进,一个出)来模拟栈,
queue1: 1 2 3 4
queue2: 4 3 2 1
移除4 (即栈顶)
此时
queue1:
queue2: 3 2 1
如果再来俩元素的话
queue1: 5 6
queue2:3 2 1
想要移除栈顶6的话(再将队列一的元素移到队列二)
queue2:3 2 1 6 5(可以看出无法得到 栈顶元素 6)
**/
queue<int> q;
public:
/** Initialize your data structure here. */
MyStack() {
}
//我们将每次入队的时候 将元素放到末尾,然后将其他元素按顺序出队排到其后面
/** Push element x onto stack. */
void push(int x) {
int size = q.size();
q.push(x);
while(size--) {
int temp = q.front();
q.pop();
q.push(temp);
}
}
/** Removes the element on top of the stack and returns that element. */
int pop() {
int nums = q.front();
q.pop();
return nums;
}
/** Get the top element. */
int top() {
int nums = q.front();
return nums;
}
/** Returns whether the stack is empty. */
bool empty() {
return q.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();
*/
标签:leetcode225,obj,队列,top,pop,int,MyStack,实现,empty 来源: https://blog.csdn.net/qq_48508278/article/details/122440178