![c3f61b6f-6913-eb11-8da9-e4434bdf6706.png](http://p04.5ceimg.com/content/c3f61b6f-6913-eb11-8da9-e4434bdf6706.png)
队列是一种先进先出(first in first out,FIFO)的线性表,是一种常用的数据结构。
它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
![c7f61b6f-6913-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/c7f61b6f-6913-eb11-8da9-e4434bdf6706.png)
队列有很多种,按照存储结构划分,有链式队列,循环队列,单向队列,双端队列。实现队列的方式也有很多种,如基于链表的链接队列(又称链队列),基于数组的队列。
本文介绍基于数组的循环队列的实现和一些基本操作,并用代码的形式讲解。
![cbf61b6f-6913-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/cbf61b6f-6913-eb11-8da9-e4434bdf6706.png)
以下代码,实现了一个可以保存学生学号(最长12位的字符串)循环队列:
#include
以上代码经过调试,我自认为没有问题(鄙人才疏学浅,欢迎指正)。如果读者朋友们有疑问和更正,欢迎评论区补充和探讨。