代码:
#include <iostream>
#include <stack>
using::std::stack;
class Cqueue
{
public:
stack<int>stack1,stack2;
Cqueue(){};//构造函数;
void appendTail(int val)
{
stack1.push(val);
}
int deleteHead()
{
if(stack1.empty())
{
return -1;
}
else
{
while(!stack1.empty())
{
int tem = stack1.top();
stack1.pop();
stack2.push(tem);
}
int deleteH = stack2.top();
stack2.pop();
while(!stack2.empty())
{
int temD = stack2.top();
stack2.pop();
stack1.push(temD);
}
std::cout << deleteH << ‘\n‘;
return deleteH;
}
}
};
int main()
{
Cqueue q;
for(int i=1;i<5;i++)
{
q.appendTail(i);
}
std::cout << "stack1中的元素:" << ‘\n‘;
for(int i=1;i<5;i++)
{
int tem = q.stack1.top();
q.stack1.pop();
std::cout << tem << ‘ ‘;
}
std::cout << ‘\n‘;
for(int i=1;i<5;i++)
{
q.appendTail(i);
}
q.deleteHead();
}
测试结果:

两个栈实现队列的插入和删除(C++实现)
原文:https://www.cnblogs.com/shiheyuanfang/p/13583037.html