0
点赞
收藏
分享

微信扫一扫

队列(一)

一、概念和结构

队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出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; //当队列头节点的指针和尾结点的指针都为空时队列为空
}

举报

相关推荐

0 条评论