标签:while 实现 void 不为 用两个 private 允许 操作 turn
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:
public:
void push(int node) {
stack1.push(node); //stack1存入该数
}
int pop() {
int res;
if (stack2.size() > 0) { //stack2不为空
res = stack2.top(); //取值stack2的第一个元素
stack2.pop(); //删除stack2的第一个元素
}
else if (stack1.size() > 0) { //stack1不为空
while (stack1.size() > 0) {
int ele = stack1.top(); //取值stack1的第一个元素
stack1.pop(); //删除stack1的第一个元素
stack2.push(ele); //将stack1的第一个元素赋值给stack2 这里是将stack1的元素存入stack2 ,stack1,2都为为先进后出,将顺序调整为了先进先出
}
res = stack2.top(); //取值stack2的第一个元素
stack2.pop(); //删除stack2的第一个元素
}
return res;
}
private:
stack<int> stack1;
stack<int> stack2;
};
思路和题解都是借鉴别人的 要好好理解理解
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
标签:while 实现 void 不为 用两个 private 允许 操作 turn
原文地址:https://www.cnblogs.com/yl1995/p/12919724.html