队列:顺序队列 链式队列
一般常用顺序循环队列
空队标志:front == rear ,头指针和尾指针相等
循环队列解决队满时判断方法:少用一个元素空间
(rear+1)%MAXQSIZE==front
循环队列的类型定义
#define MAXQSIZE 100 //最大队列长度
typedef struct{
QElemType *base; //动态分配存储空间
int front; //头指针,若队列不空,指向队列头元素
int rear; //尾指针,若队列不为空,指向队列尾元素的下一个位置
} SqQueue;
1.循环队列的初始化
Status InitQueue(SqQueue &Q){
Q.base=new QElemType[MAXQSIZE]; //分配数组空间
//Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));
if(!Q.base) exit(OVERFLOW); //存储分配失败
Q.front=Q.rear=0; //头指针 尾指针置为0,队列为空
return OK;
}
2.求循环队列长度
int QueueLength(SqQueue Q){
return ((Q.rear-Q