队列
队列定义:队列是连续、有限的空间,数据入队必须从队尾入,出队必须从队头出。(类似于现实世界排队)
至于rear和front指向的定义是人为设置的;rear可以指向队尾数据,也可以指向队尾数据下一位;front可以指向队头数据,也可以指向队头数据前一位
| 类型 | 普通队列 | 循环队列 |
|---|---|---|
| 队空条件 | rear==front | rear==front |
| 队满条件 | rear==MAX_SIZE | front==(rear+1)%MAX_SIZE |
| 入队和rear移动的先后顺序 | rear先后移,数据再入队 | rear先后移,数据再入队 |
| 出队和front移动的先后顺序 | front先后移,数据再出队 | front先后移,数据再出队 |
| 常用初始化 | rear=front=-1 | rear=front=0 |
| rear指向定义 | 指向队尾数据 | 指向队尾数据 |
| front指向定义 | 指向队头数据 | 指向队头数据前一个元素 |
| 空位位置 | 无空位 | 无数据时front指向空位 |
循环队列与普通队列区别和优缺点
区别:数据出队后,空间能否重复利用
优缺点:普通队列相比较循环队列数据出队后,空间不可重复利用,且普通队列可能出现“假性队满”的情况
循环队列实现方式还有多种,如下。

浙公网安备 33010602011771号