队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,我们把它简称为链队列。为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指向终端结点,如图4-13-1所示。
空队列时,front和rear都指向头结点,如图4-13-2所示。
链队列的结构为:
/* QElemType类型根据实际情况而定,这里假设为int */
typedef int QElemType;
/* 结点结构 */
typedef struct QNode{
QElemType data;
struct QNode *next;
} QNode, *QueuePtr;
/* 队列的链表结构 */
typedef struct{
/* 队头、队尾指针 */
QueuePtr front, rear;
} LinkQueue;