您的位置:首页 > 其它

队列

2016-02-05 20:17 190 查看
template <class T>
class Hqueue
{
public:
Hqueue();
virtual ~Hqueue();
void insertQueue(T e);
T deleteQueue();
int getNumOfQueue(){ return num; }
protected:
struct node
{
T date;
node* next;
};
node* front;
node* rear;
int num;
};

template <class T>
Hqueue<T>::Hqueue()
{
num = 0;
front = rear = new node;
rear->next = NULL;
if(NULL == front)
exit(0);
}

template <class T>
Hqueue<T>::~Hqueue()
{
node* p = front->next;
while(p){
delete front;
front = p;
p = front->next;
}
delete front;
}

template <class T>
void Hqueue<T>::insertQueue(T e)
{
num++;
node* p = new node;
p->date = e;
p->next = NULL;
rear->next = p;
rear = p;
}

template <class T>
T Hqueue<T>::deleteQueue()
{
num--;
T e = front->next->date;
node* p = front->next;
front->next = p->next;
delete p;
return e;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: