⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linqueue.h

📁 八种排序算法
💻 H
字号:
#include <iostream>
using namespace std;




template <class T> class LinQueue;



template <class T>
class QueueNode
{
	friend class LinQueue<T>;
public:
	QueueNode(const T& item,QueueNode<T> *ptrNext=NULL):data(item),next(ptrNext)
	{
	}
	~QueueNode(){};

private:
	QueueNode<T> *next;
	T data;
};

template <class T>
class LinQueue
{
public:
	LinQueue();
	~LinQueue();
	void Append (const DataType & item);
	T Delete();
	T GetFront() const;
	int NotEmpty() const
	{
		return count!=0;
	}

private:
	QueueNode<T> *front;
	QueueNode<T> *rear;
	int count;
};
template<class T>
LinQueue<T>::LinQueue()
{
	front=rear=NULL;
	count=0;
}
template <class T>
LinQueue<T>::~LinQueue()
{
	QueueNode<T> *p,*q;
	p=front;
	while(p!=NULL)
	{
		q=p;
		p=p->next;
		delete q;
	}
	count=0;
	front=rear=NULL;
}
template <class T>
void LinQueue<T>::Append (const DataType & item)
{
	QueueNode<T> *newNode=new QueueNode<T>(item,NULL);
	if(rear!=NULL)
	{
		rear->next=newNode;
	}
	rear=newNode;
	if(front=NULL)
	{
		front=newNode;
	}
	count++;
	
}
template<class T>
T LinQueue<T>::Delete()
{
	if(count=0)
	{
		cout<<"队列已空"<<endl;
		exit(0);
	}
	QueueNode<T> *p=front->next;
	T data=front->data;
	delete front;
	front=p;
	count--;
	return data;
}

template<class T>
T LinQueue<T>::GetFront()const
{
	if(count==0)
	{
		cout<<"队列已空!"<<endl;
		exit(0);
	}
	return front->data;
}

⌨️ 快捷键说明

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