作者:MiTu_-_
基本数据结构
三、队列
循环队列是比较常用的结构,是一种先进先出(FIFO,first in first out)的线性表。
队列有两种存储方式,一是连续的顺序存储单元,即一维数组;二是链表结构,即链队列。
以下代码用一维数组来实现循环队列,用指针 front 和 rear 分别指示队列头元素和队列尾元素的下一个元素(以此做法少用一个元素空间来判断队列是否满,即当 Q.rear = Q.front,队列空;当 Q.rear + 1 指回 Q.front 时,队列满)。
![](https://i-blog.csdnimg.cn/blog_migrate/b16c62c07edebb5561c6d5f1bb5300ff.jpeg)
//名称:SeqQueue()
//功能:循环队列操作
//说明:Q.front 指向队列首元素 Q.rear 指向队列末尾元素的下一位置
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define MAXSIZE 100 //最大队列长度
typedef int Status;
//队列定义
typedef int QT; //QueueElemType
typedef struct {
QT * data; //初始化
int front; //头指针,若队列不空,指向头元素
int rear<