用队列实现栈
用两个队列实现栈
que1出队列,que2入队,实现先进后出
class Solution{
public:
queue<int> que1;
queue<int> que2;
int mystack {
}
int getTop() {
int s = que1.size();//获取队列的长度
s--;//前n-1个元素的长度
while (s--) {//将队列1前n-1个元素放到队列2
que2.push(que1.front());
que1.pop();
}
int result = que1.front();//获得队列1的最后一个元素即栈顶元素
que1 = que2;//将队列2复制给队列1
while (!que2.empty()) {//清空队列2的元素
que2.pop();
}
return result;
}
int pop() {
int s = que1.size();
s--;
while (s--) {
que2.push(que1.front());
que1.pop();
}
int result = que1.front;
//清空队列
que1.pop();
que1 = que2;
while(!que2.empty()) {
que2.pop();
}
return result;
}
int push(int x) {
que1.push(x);
}
}
使用单个队列进行上述操作
class Solution{
public:
queue<int> que1;
int MyStack() {
}
int GetTop () {
int s = que1.size();
s--;
while (s--) {
que1.push(que1.front());
que1.pop();
}
int result = que1.front();
que1.push(que.front());
que.pop();
reutrn result;
}
int pop() {
int s = que1.size();
s--;
while (s--) {
que1.push(que1.front());
que1.pop();
}
int result = que1.front();
que.pop();
return result;
}
int push(int x) {
que1.push(x);
}
bool emtpy() {
return que.empty();