queue.h
来自「B-树实现索引和快速查找」· C头文件 代码 · 共 55 行
H
55 行
#ifndef Queue_h
#define Queue_h
#include<iostream.h>
#include<assert.h>
template<class Type> class Queue;
template<class Type> class QueueNode{
friend class Queue<Type>;
private:
Type data;
QueueNode<Type> *link;
public:
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(const Type& item);
Type DeQueue();
Type GetFront();
void MakeEmpty();
int IsEmpty()const{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(const 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>::DeQueue(){
assert(!IsEmpty());
QueueNode<Type> *p=front;
Type retvalue=p->data;
front=front->link;delete p;
return retvalue;
}
template<class Type> Type Queue<Type>::GetFront(){
assert(!IsEmpty());
return front->data;
}
template<class Type> void Queue<Type>::MakeEmpty(){
QueueNode<Type> *p;
while(front!=NULL){
p=front;front=front->link;delete p;
}
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?