1、队列的定义
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。
队头(head):允许删除的一端,又称队首。
队尾(tail):允许插入的一端。
2.c语言实现队列
创建结构体QueueNode这个结构体是创建节点的,节点由数据和指向下一个节点的指针构成的
第二个结构体是创建指向节点的两个指针,对头指针head和队尾指针tail
typedef int QueueDataType;
typedef struct QueueNode
{
struct QueueNode* next;
QueueDataType data;
}QNode;
typedef struct Queue
{
QNode* head;
QNode* tail;
}Queue;
队列的接口
void QueueInit(Queue* pq); //初始化队列
void QueueDestory(Queue* pq); //销毁队列
void QueuePush(Queue* pq, QueueDataType x); //插入元素
void QueuePop(Queue* pq); //出队列
QueueDataType QueueFront(Queue* pq); //查看队头元素
QueueDataType QueueBack(Queue* pq); //查看队尾元素
bool QueueEmpty(Queue* pq); //检查队列是否为空
int QueueSize(Queue* pq); //查看队列的长度
1.初始化队列
void QueueInit(Queue* pq)
{
assert(pq);
pq->head = pq->tail = NULL;
}
2.销毁队列
当队列不为空时,用一个代替对头往后访问的指针cur ,