链队是指采用链式存储结构实现的队列。通常链队用单链表来表示,如图所示。一个链队显然需要两个分别指示队头和队尾的指
针(分别称为头指针和尾指针)才能唯一确定。这里和线性表的单链表一样,为了操作方便起见,给链队添加一个头结点,并令头指针始终指向头结点。
1.队列的链式表示
typedef struct QNode
{
int data;
struct QNode *next;
}QNode, *QueuePtr;
typedef struct
{
QueuePtr front; // 队头指针
QueuePtr rear; // 队尾指针
}LinkQueue;
2.链队的初始化
- 链队的初始化操作就是构造一个只有一个头结点的空队,如图(a)所示
- 算法步骤
- ①生成新结点作为头结点,队头和队尾指针指向此结点。
- ②头结点的指针域置空。
- 算法描述
int InitQueue(LinkQueue &Q)
{
//