链式队列特点
用单链表表示的链式队列特别适合于数据元素变动比较大的情况,不存在队列满且溢出的问题。
代码实现
/**
* 链式队列的基本操作(带头结点)
*/
#include <cstdio>
#include <malloc.h>
/**
* 定义结构
*/
typedef struct LinkNode{
//链式队列结点
int data; //数据域
struct LinkNode *next; //指针域
}LinkNode;
typedef struct LinkQueue{
//链式队列
LinkNode *front,*rear; //首尾指针
}LinkQueue;
/**
* 初始化队列,构造一个空的队列
*/
void initQueue(LinkQueue &Q){
LinkNode *headNode = (LinkNode *)malloc(sizeof(LinkNode));//创建头结点
headNode->data = -1; //头结点数据域初始化为-1
headNode->next = NULL; //头结点指针欲初始化为Null
//首位指针指向头结点
Q.front = headNode;
Q.rear = headNode;
}
/**
* 判断队列是否为空
*/
bool QueueIsEmpty(LinkQueue Q){
if(Q.front == Q.rear){
//队列为空