队列
1、也是一种操作受限的线性表,规定只能在一端插入,一端删除,有先进先出的特点。
2、顺序队列,队首指针指向队首元素,队尾指针指向队尾元素的前一个元素,此时队列为空的判定条件是
Q.front == Q.rear == 0;
2、顺序队列会有假溢出的现象,为此设计了循环队列。
1)为了区分队满和队空的条件,循环队列往往采用少用一个单元进行入队
队满判定条件:(Q.rear+1)%maxSize == Q.front;
队空条件:Q.front == Q.rear
队中元素的个数:(Q.rear+maxSize-Q.front)%MaxSize
2)也可以在类型中增设size属性
队空:Q.size == 0 && Q.front == Q.rear
队满:Q.size == maxSize-1 && Q.front == Q.rear
顺序循环队列实现代码
一般循环队列默认是顺序队列,因为链式队列不会考虑存储空间和溢出的问题,
此串代码入队enQuene()有问题,不能实现入队操作,待解决
/*
循环队列,队首指针指向队首元素,队尾指针指向队尾元素的前一个元素
*/
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
typedef int ELEMTYPE;
typedef enum{
SUCCESS,ERROR,EMPTY,FULL
}STATUS;
typedef