队列概念:
只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out)
入队列:进行插入操作的一端称为队尾
出队列:进行删除操作的一端称为队头
队列的实现
队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数 组头上出数据,效率会比较低。
下面用链式结构实现队列:
// 链式结构:表示队列
typedef int QDataType;
typedef struct QListNode
{
struct QListNode* next;//记录下一个节点地址
QDataType data;//记录数据
}QNode;
// 队列的结构
typedef struct Queue
{
QNode* head;//记录头节点
QNode* tail;//记录尾节点
}Queue;
开始先定义一个队列,要先进行