一,链队的组成
链队:队列的链式存储结构,链队和单链表直接,多了一个尾指针,并且只能够尾指针进队,头指针出队。空队列时,俩个指针都指向头节点。
它的节点和普通节点一样,在链队的结构体定义了俩个节点型指针,这样这个结构通过指针就能够表示一个链式存储的队列。
二,链队的常见操作
1.链队的初始化(创建一个链队)
- 声明一个链队
- 调用初始化函数
- 分配头节点内存
- 让头尾指针都指向头节点
- 头节点的指针域置为null
2.判读链队是否为空
- 判断链表的头指针和尾指针是否相等
3.链队的进队
- 创建一个新的节点
- 分配内存
- 给节点赋值,指针域清空
- 让尾指针指向节点的指针域指向新节点
- 尾指针后移
4.链队的出队
- 定义一个节点型指针
- 判断是不是空的队列
- 用指针指向头指针指向的节点
- 保存数据
- 头指针后移
- 在判断是不是出队的节点到了尾指针,到了就是空队
- 释放节点内存
5.清空链队
- 定义俩个节点型的指针
- 让队尾指针指向队头
- 用申请的一个指针指向要释放节点
- 清空队头的指针域
- 遍历队列
- 保存删除节点内存
- 指针后移
- 释放上一个节点内存
6.输出链队
- 申请一个节点指针
- 给指针赋值
- 遍历打印
三, 队的类型
- 普通队列:头出尾进,使用数组,空间利用率低。
-
循环队列:和普通队列相比,将队列的首尾相连,队列尾下标永远是最后一个元素的下一个空闲位置。所以队列满判断依据是(rear+1)%queuesize==front,队列的长度是(rear-front+queuesize)%queuesize。
-
链队
四,总结
链队就是链表多了节点指针,只能够头出尾进。