队列
只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)原则;
入队列:进行插入操作的一端称为队尾;
出队列:进行删除操作的一端称为队头;
队列的实现一般可以使用数组或者链表结构实现,使用链表的结构更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低;
-
代码实现
定义结构
typedef int QDataType;
typedef struct QueueNode
{
QDataType _data;
struct QueueNode* _next;
}QueueNode;
typedef struct Queue
{
struct QueueNode* _first;//队头
struct QueueNode* _end;//队尾
}Queue;
初始化、销毁
void QueueInit(Queue* q)// 初始化队列
{
assert(q);
q->_first = NULL;
q->_end = NULL;
}
void QueueDestroy