myqueue.h

来自「linux下数据库连接池源代码,简单,易用」· C头文件 代码 · 共 85 行

H
85
字号
/////////////////////////// 
//    // 
//   队列数据结构       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 GetFront(); 
void MakeEmpty(); 
bool ISEmpty() { return front==NULL; } 
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>::GetFront() 
{ 
return front->data; 
} 


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 + =
减小字号Ctrl + -
显示快捷键?