链队列,即队列的链式存储结构,它是仅在表头删除和表尾插入的单链表,因此一个链队列需要设置两个分别指示队头元素和队尾元素的指针,为了操作方便,给链队列添加一个头结点,并令队头指针指向头结点,由此,空的链队列的判断条件就是队头指针和队尾指针均指向头结点。
链队列的类型描述:
//链队列类型描述
typedef int QElemType;
typedef struct node{
QElemType data;
struct node *next;
}QNode,*QueuePtr;
typedef struct{
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}LinkQueue;
基本操作:
1. 链队列的初始化(带头结点)Init_LinkQueue(LinkQueue *Q)
//链队列的初始化(带头结点)
void Init_LinkQueue(LinkQueue *Q){
QueuePtr head = (QueuePtr)malloc(sizeof(QNode));
if(!head)
exit(OVERFLOW);
head->next = NULL;
Q->front = Q->rear = head;
}
2. 销毁链队列Destroy_LinkQueue(LinkQueue *Q)
//销毁链队列
void Destroy_LinkQueue(LinkQueue *Q){
//从头结点开始释放链队列中所有的结点
while(Q->front){
Q->rear = Q->front->next;
free(Q-&

本文介绍了链队列的概念,它是一种仅在表头删除和表尾插入的单链表。链队列通过添加头结点来方便操作,空链队列的标志是队头和队尾指针都指向头结点。文章详细阐述了链队列的类型描述及包括初始化、销毁、清空、判断空队列、求长度、取头尾元素、入队、出队和打印链队列在内的基本操作。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



