📄 q_queue.h
字号:
//?:(003)q_queue.h
//:Q_QUEUE.h header file(class file)
#ifndef Q_QUEUE_H
#define Q_QUEUE_H
#include "c_node.h"
template<class T>
class q_queue
{
struct q_node
{
T data;
q_node* next;
q_node(T dat,q_node *nxt)
{
data=dat;
next=nxt;
}
~q_node(){};
};
struct l_queue
{
q_node *front;
q_node *rear;
l_queue(q_node *frt,q_node *rea)
{
front=frt;
rear=rea;
}
~l_queue(){};
}*q;
public:
q_queue();
void q_append(T data);
T q_delete(void);
T q_get_head(void);
bool q_notempty(void);
~q_queue();
};
template<class T>
q_queue<T>::q_queue()
{
q=new l_queue(0,0);
}
template<class T>
bool q_queue<T>::q_notempty(void)
{
if (q->front==0) return false;
else return true;
}
template<class T>
void q_queue<T>::q_append(T data)
{
q_node *qnode=new q_node(data,0);
if (qnode==0)
{
cout<<"Memory is not enough !"<<endl;
return;
}
if(q->rear!=0) q->rear->next=qnode;
q->rear=qnode;
if(q->front==0) q->front=qnode;
}
template<class T>
T q_queue<T>::q_delete(void)
{
if(q->front==0)
{
cout<<"No data for deleting"<<endl;
exit(1);
}
T data;
q_node *qnode;
data=q->front->data;
qnode=q->front;
q->front=q->front->next;
if(q->front==0) q->rear=0;
delete qnode;
return data;
}
template<class T>
T q_queue<T>::q_get_head(void)
{
if(q->front==0) return 0;
return q->front->data;
}
template<class T>
q_queue<T>::~q_queue()
{
q_node *oldnode,*tmpnode;
oldnode=q->front;
while(oldnode!=0)
{
tmpnode=oldnode;
oldnode=oldnode->next;
delete tmpnode;
}
}
#endif
//:End the q_queue class file define
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -