数据结构笔记3.3.3 Queue
与栈类似,队列也分成顺序队列和链式队列。用单链表表示的链式队列特别适合于元素变动比较大的情形,而且不存在队列FULL而溢出的情况。另外,假若程序中需要多个队列,与多个栈的情形一样,最好使用链式队列。这样不会出现存储分配不合理的问题,也不需要考虑存储的移动。下面就给出相应的代码。
链式队列模板类代码:
//数据结构——链式队列模板类
#include <iostream>
using namespace std;
template<class T>
struct LinkNode {
T data; //队列每个节点的数据域
LinkNode<T> *next; //队列每个节点的指针域
//构造函数
LinkNode(T x, LinkNode<T> *p = NULL) {
data = x;
next = p;
}
};
template<class T>
class LinkedQueue {
public:
LinkedQueue(); //构造函数
~LinkedQueue(); //析构函数
bool enQueue(const T & x); //将x加入队列当中
bool delQueue(T & x); //删除队头元素,x返回其值
bool getFront(T & x) const; //查看队头元素的值
void makeEmpty(); //将队列清空
bool isEmpty() const;