队列中的循环队列用法说明

循环队列样式结构图:
队列中的循环队列用法说明_第1张图片
优点:
解决了顺序队列只能从队尾插入元素而导致空间的浪费;
问题:
在循环队列中,空队特征是front = rear, 队满时也会有front = rear; 判断条件将出现二义性;

解决方法

1、使用额外的标记
(1)引入Size标记
来记录队列的长度,当size为队列最大长度时为满,size=0为空;
(2)引入tag标记
删除时tag=0,插入时tag=1;当front == rear时,如果 tag==0则为空,否则为满;
2、仅使用n-1个数组空间

空闲单元法:

队列中的循环队列用法说明_第2张图片
循环队列满的条件:
(rear+1)% N == front;
循环队列空的条件:
(front==rear);

你可能感兴趣的:(栈和队列,数据结构)