队列是一种先进先出(FIFO)的线性表,它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。队列的结构图如下所示:
明白了队列之后,链队列就非常简单了,用链表表示的队列就简称为链队列。一个链队列显然需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能惟一确定。
图片转载
//链队列结构定义
//链队列节点
typedef struct LinkNode
{
int data;
struct LinkNode* next;
}*LinkNodePtr;
//链队列
typedef struct LinkQueue
{
LinkNodePtr front;
LinkNodePtr rear;
} *LinkQueuePtr;
链队列的常用操作
初始化和输出
//初始化
LinkQueuePtr initQueue()
{
LinkQueuePtr resultPtr = (LinkQueuePtr)malloc(sizeof(struct LinkQueue));
LinkNodePtr headPtr = (LinkNodePtr)malloc(sizeof(struct LinkNode));
headPtr->data = -1;
h