3.2.3队列的链式实现

3.2.3队列的链式实现_第1张图片

 队列的链式实现

3.2.3队列的链式实现_第2张图片

 注意声明队头指针和队尾指针作用

(1)插入节点的时候只要rear指针指向结点的next指针指向的位置;

(2)删除只要front指指针指向的头节点next指针指向的位置删除;

3.2.3队列的链式实现_第3张图片

 

(1)初始化(带头结点)

3.2.3队列的链式实现_第4张图片

 

初试化(不带头结点)

3.2.3队列的链式实现_第5张图片

 

(2)入队(带头结点)

3.2.3队列的链式实现_第6张图片

 3.2.3队列的链式实现_第7张图片

 新的结点赋值为x

s的next指针指向NULL

入队(不带头结点)

3.2.3队列的链式实现_第8张图片

 

(3)出队(带头结点)

 3.2.3队列的链式实现_第9张图片

 只能在front后面进行删除(出队):

3.2.3队列的链式实现_第10张图片

 3.2.3队列的链式实现_第11张图片

把p释放掉就行。 

当要删除的是最后一个结点。

3.2.3队列的链式实现_第12张图片

 

出队不带头节点

3.2.3队列的链式实现_第13张图片

 

队列满的条件

3.2.3队列的链式实现_第14张图片

 

结合单链表理解,十分类似:

3.2.3队列的链式实现_第15张图片

 同时长度(时间复杂度O(n))

你可能感兴趣的:(数据结构,c++,数据结构,开发语言)