stack和queue都是一种线性结构。要用stack实现queue的push和pop方法,我们首先需要了解下这两种结构的特点。
stack:数据先进后出。
queue:数据先进先出。
我们记两个stack分别是head、tail。我们的想法是这样的,既然是要保证queue的push和pop方法,就是准确得到queue的队头和队尾,我们拥有两个栈,我们只要在head里面push,到pop的时候我们只要循环在tail栈push head的头,pop head栈的头操作。直到head为空。
template <class T>
class MyQueue
{
public:
bool empty()const
{
return head.empty()&&tail.empty();//用STL栈里面的函数
}
void push(T t)
{
head.push(t);
}
//删除队头元素
//把head中的数据转移到tail中,