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 + -
显示快捷键?