一、概念和结构 队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 。入队列:进行插入操作的一端称为队尾 。出队
一、概念和结构
队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 。 入队列:进行插入操作的一端称为队尾 。 出队列:进行删除操作的一端称为队头。 </br>
二、基本操作的实现
定义结构体:
typedef int QDataType;
//队列中结点
typedef struct QueueNode
{
QDataType val;//结点值
struct QueueNode* next;//指向下一个结点的指针
}QNode;
typedef struct Queue {
QNode* head;//队列头结点的指针
QNode* tail;//队列尾结点的指针
int size;//队列中元素个数
}Queue;
1.初始化
void QueueInit(Queue* pq)//初始化
{
assert(pq);
pq->head = pq->tail = NULL;
pq->size = 0;
}
2.判断是否为空
bool QueueEmpty(Queue* pq)//判断是否为空
{
assert(pq);
return pq->head == NULL && pq->tail == NULL; //当队列头节点的指针和尾结点的指针都为空时队列为空
}