queue2.h

来自「大学计算机专业课程中数据结构各章的算法设计」· C头文件 代码 · 共 67 行

H
67
字号
#include<iostream.h>
#include"OnelinkNode2.h"
template<class T>
class Queue2
{
	public:
		OnelinkNode2<T>* front,*rear;
		Queue2();
		~Queue2();
		bool isEmpty()const;
		bool enQueue(T&k);
		T deQueue();
		friend ostream& operator<<(ostream& out,Queue2<T> &q);
};
template<class T>
Queue2<T>::Queue2()
{
	front=rear=NULL;
}
//析构函数
template<class T>
Queue2<T>::~Queue2()
{
	OnelinkNode2<T>*p=front,*q;
	while(p!=NULL)
	{
		q=p;
		p=p->next;
		delete q;
	}
	front=rear=NULL;
}
//判断队列状态
template<class T>
bool Queue2<T>::isEmpty()const
{
	return front==NULL&&rear==NULL;
}
//入队
template<class T>
bool Queue2<T>::enQueue(T& k)
{
	OnelinkNode2<T>*p=new OnelinkNode2<T>(k);
	if(!isEmpty())
		rear->next=p;
	else
		front=p;
	rear=p;
	return true;
}
//出队
template<class T>
T Queue2<T>::deQueue()
{
	T k;
	if(!isEmpty())
	{
		k=front->data;
		OnelinkNode2<T> *p=front;
		front=front->next;
		delete p;
		if(front==NULL)
			rear=NULL;
	}
	return k;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?