#include "QueueControl.h"
int main(int argc, const char * argv[]) {
//初始化顺序队列
SEQUEUE queue=initQueue();
printQueue(queue);
//插入
queue=inQueue(queue, 'a');
queue=inQueue(queue, 'b');
queue=inQueue(queue, 'c');
queue=inQueue(queue, 'd');
printQueue(queue);
//删除
queue=outQueue(queue);
printQueue(queue);
return 0;
}
打印结果:
queue={}
in success
in success
in success
in success
queue={a,b,c,d}
out success
queue={b,c,d}
Program ended with exit code: 0
从插入队列和删除队列操作的打印结果来看,队列的特点确实是:先进先出.
循环队列及其操作
循环队列的存储结构
根据顺序队列的操作和叙述可以看出,队尾指针=m表示队满,不能再插入结点了,当队头指针等于队尾指针表示对空.但是当队尾指针和队尾指针都等于m的时候,那么此时表示对空,那么也不能插入了其他的结点,但是此时0-m之间的结点已经空闲,这样许多空闲的结点不能被利用,浪费存储空间.
循环队列是把顺序队列的头尾相接形成一个圆环.逻辑上吧1号结点作为m号结点的后继结点处理.










