📄 linqueue.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 + -