在编程语言中怎样定义队列及其使用(C++)

2020-01-06 20:18:04王振洲


#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号结点的后继结点处理.

编程语言,定义队列,C++