###数据结构与算法-链式队列
#####链式队列的定义
链式队列是用链表来实现的队列,不存在队满的情况。链式队列也包里队列的特点。所以我们实现链式队列的 尾部进,头部出。
#####链式队列的结构
我们实现链式队列,首先要定一个链式队列的结构。我们要:1.定义结点。2.定义结构。
#define OK 1
#define ERROR 0
#define TURE 1
#define FLASE 0
typedef int Status;
typedef int ElemType;
//结点
typedef struct SqNode{
ElemType data;
struct SqNode *next;
}SqNode, *SqQueuePtr;
//结构
typedef struct Queue{
SqQueuePtr front;
SqQueuePtr rear;
}LinkQueue;
这样,我们就定义了一个链式队列的结构,我们就可以进行链式队列的操作了。
#####链式队列的初始化
链式队列的初始化,即是给开辟一个空间,然后让队列的头指针和尾指针都指向这个开辟的空间。由此,一个简单的队列就完成了。
//初始化
Status InitLinkQueue(LinkQueue *Q){
Q->front = Q->rear = (SqQueuePtr)malloc(sizeof(SqNode));
if (!Q->front) return ERROR;
Q->front->next = NULL;//头结点置空
return OK;
}
#####链式队列的销毁
链式队列的销毁不同于链式队列的清空。销毁的意思很明确,就是 干掉 😝。