//用两个队列模拟栈
//总维持一个栈有数据,另一个为空
void cstack::push(int num)
{
if (queue2.size()!=0) {
queue2.push(num);
}
else
{
queue1.push(num);
}
}
void cstack::pop()
{
if(queue1.size()==0 && queue2.size()==0)
{
printf("stack is empty");
return ;
}
else
{
//只留一个剩下全部搬运到queue2
if (queue1.size()!=0) {
while (queue1.size()!=1) {
int temp=queue1.front();
queue1.pop();
queue2.push(temp);
}
queue1.pop();//这是我们需要的pop
}
else if (queue2.size()!=0) {
while (queue2.size()!=1) {
int temp=queue2.front();
queue2.pop();
queue1.push(temp);
}
queue2.pop();//这是我们需要的pop
}
}
}