现在的位置: 首页 > 综合 > 正文

队列

2012年08月20日 ⁄ 综合 ⁄ 共 950字 ⁄ 字号 评论关闭

今天自己手写了个队列

#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;
	}
}

抱歉!评论已关闭.