关于队列数据结构?

#include<malloc.h>
#include<stdio.h>
#define OK 1
#define ERROR 0
typedef int Status;
typedef int QElemType;
#define MAXQSIZE 100

typedef struct
{
QElemType *base;
int front;
int rear;
}SqQueue;

Status InitQueue(SqQueue &Q)
{
Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));
if(!Q.base)
return ERROR;
Q.front=Q.rear=0;
return OK;
}

Status EnQueue(SqQueue &Q,QElemType e)
{
if((Q.rear+1)%MAXQSIZE==Q.front)
return ERROR;
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXQSIZE;
return OK;
}
为什么要Q.rear=(Q.rear+1)%MAXQSIZE;,直接Q.rear++不就好了
Q.rear+1)%MAXQSIZE==Q.front)这个是什么意思



互换的青春
浏览 726回答 1
1回答

慕标琳琳

环形队列,容量满了自动覆盖第一个队列元素, rear指向下一个
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

数据结构