对网络上一位同学的日志改进而来,忘记链接,还望见谅!!!!
/*
* 1、设立一个队首指针front,一个队尾指针rear,分别指向队首和队尾元素
* 2、初始化: LQ->front = LQ->rear = NULL;将队尾和队头指针置为空,由于不带
头结点,不需要为头结点开辟空间。
* 3、判断队列是否为空: LQ->front == NULL;
* 4、队满:链式队列的节点是动态开辟的,一般庆康下不存在队满
* 5、入队:将新节点插入rear所指的节点的下一个节点,然后rear指向新插入的节点
* 6、出队:删除front所指的元素,并返回被删除元素
* 7、取队头元素,返回队头元素的值,return *data = LQ->front->_data;
* 8、清空队列:从节点开始,依次销毁节点空间
* 9、打印队列中元素,pCur指向头节点,打印pCur指向的节点元素,pCur后移到pCur==NULL
*/
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
typedef struct Node{
DataType data;
struct Node* next;
}LinkQueueNode;
typedef struct
{
LinkQueueNode* front;
LinkQueueNode* rear;
}LinkQueue;
/* 队列初始化 */
void InitLinkQueue(LinkQueue* LQ)
{
LQ->front = LQ->rear = NULL;
}
/* 入队操作 */
void EnterQueue(LinkQueue* LQ, DataType