今天自己手写了个队列
#define MAXSIZE 10000
template<typename DATATYPE>
class queue
{
private:
DATATYPE * QUEUE;
DATATYPE *pfront,*prear;
public:
queue();
~queue();
bool pop();
bool push(DATATYPE);
DATATYPE front();
bool empty();
void show(bool);
};
template<typename DATATYPE> queue<DATATYPE>::queue()
{
QUEUE=new DATATYPE[MAXSIZE];
pfront=prear=&QUEUE[0];
}
template<typename DATATYPE>queue<DATATYPE>::~queue()
{
delete QUEUE;
}
template<typename DATATYPE>bool queue<DATATYPE>::pop()
{
if(pfront==rear)return false;
pfront=(pfront+1)%MAXSIZE;
return true;
}
template<typename DATATYPE>bool queue<DATATYPE>::push(DATATYPE T)
{
prear=(prear+1)%MAXSIZE;
if((prear+1)%MAXSIZE==front)return false;
QUEUE[prear]=T;
return true;
}
template<typename DATATYPE>DATATYPE queue<DATATYPE>::front()
{
return QUEUE[pfront];
}
template<typename DATATYPE>bool queue<DATATYPE>::empty()
{
if(pfront==prear)return true;
return false;
}
template<typename DATATYPE> void queue<DATATYPE>::show()
{
DATATYPE *p=pfront;
while(p!=prear)
{
std::cout<<*p<<" ";
p=(p+1)%MAXSIZE;
}
}