📄 linqueue.h
字号:
template<class T> class LinQueue;
template<class T>
class QueueNode
{
friend class LinQueue<T>;
private:
QueueNode<T> *next;
public:
T data;
QueueNode(const T &item,QueueNode<T> *ptrNext)
{
data=item;
next=ptrNext;
}
~QueueNode(){};
};
template<class T>
class LinQueue
{
private:
QueueNode<T> *front;
int size;
QueueNode<T> *rear;
public:
LinQueue(void)
{
front=rear=NULL;
size=0;
};
~LinQueue(void)
{
ClearQueue();
front=rear=NULL;
};
int QueueSize(void)const
{return size;};
int EmptyQueue(void)const
{
return size<=0;
};
void QInsert(const T&item);
/* {
QueueNode<T> *newNode=new QueueNode<T>(item,NULL);
if(rear!=NULL)rear->next=newNode;
rear=newNode;
if(front==0)
front=newNode;
size++;
}; */
T QDelete(void);
/* {
if(size==0)
{
cout<<"队列为空无元素可删!"<<endl;
exit(0);
}
QueueNode<T> *p=front->next;
T data=front->data;
delete front;
front=p;
size--;
return data;
};*/
T QFront(void)const;
// {
// return front->data;
// };
void ClearQueue(void);
/* {
QueueNode<T> *p,*pl;
p=front;
while(p!=NULL)
{
pl=p;
p=p->next;
delete pl;
}
size=0;
};*/
};
template<class T>
void LinQueue<T>::QInsert(const T &item)
{
QueueNode<T> *newNode=new QueueNode<T>(item,NULL);
if(rear!=NULL)rear->next=newNode;
rear=newNode;
if(front==0)front=newNode;
size++;
}
template <class T>
T LinQueue<T>::QDelete(void)
{
if(size==0)
{
cout<<"队列为空无元素可删!"<<endl;
exit(0);
}
QueueNode<T> *p=front->next;
T data=front->data;
delete front;
front=p;
size--;
return data;
}
template <class T>
T LinQueue<T>::QFront(void)const
{
return front->data;
}
template <class T>
void LinQueue<T>::ClearQueue(void)
{
QueueNode<T> *p,*pl;
p=front;
while(p!=NULL)
{
pl=p;
p=p->next;
delete pl;
}
size=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -