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

📄 queue.h

📁 自己在以前学数据结构时用C++模板写的一些常用数据,都测试过
💻 H
字号:
/////////////////////////// 
//    // 
//   队列数据结构       Queue.h // 
//    // 
////////////////////////// 
#include<iostream.h> 
template<class Type> class Queue; 
template<class Type> class QueueNode //定义队列的结点类
{ 
	friend class Queue<Type>; 
private: 
	Type data; 
	QueueNode<Type> *link; 
	QueueNode(Type d=0,QueueNode *l=NULL):data(d),link(l){} //构造函数
}; 

template <class Type> class Queue 
{ 
public: 
	Queue():rear(NULL),front(NULL){} 
	~Queue(); 
	void EnQueue(Type item); //进队列
	Type DelQueue();		//出队列
	Type GetFrontValue();		//得到队头的元素的值
	void MakeEmpty();		//使队列为空
	bool IsEmpty() { return front==NULL; } //判断队列是否空
	QueueNode *GetFront(){return front;}
	QueueNode *GetRear(){return rear;}
private: 
	QueueNode<Type> *front,*rear; //定义队列的队头和队尾结点
}; 


template<class Type> 
Queue<Type>::~Queue() 
{ 
	QueueNode<Type> *p; 
	while(front!=NULL) 
	{ 
		p=front; 
		front=front->link; 
		delete p; 
	} 
} 

template<class Type> 
void Queue<Type>::EnQueue(Type item) 
{ 
	if(front==NULL) 
		front=rear=new QueueNode<Type> (item,NULL); 
	else 
		rear=rear->link=new QueueNode<Type> (item,NULL); 
} 


template<class Type> 
Type Queue<Type>::DelQueue() 
{ 
	QueueNode<Type> *p=front; 
	Type temp=p->data;; 
	front=front->link; 
	delete p; 
	return temp; 
} 


template<class Type> 
Type Queue<Type>::GetFrontValue() 
{ 
	return front->code; 
} 


template<class Type> 
void Queue<Type>::MakeEmpty() 
{ 
	QueueNode<Type> *p; 
	while(front!=NULL) 
	{ 
		p=front;
		front=front->link; 
		delete p; 
	} 
} 

⌨️ 快捷键说明

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