循环队列改错,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/06 15:39:47
遍历显示的时候出问题,请高手改正一下,谢谢!
#include <stdio.h>
#include <stdlib.h>

#define MAXQSIZE 4
#define OVERFLOW 0
#define ERROR 0
#define OK 1

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

//初始化
int InitQueue(SqQueue *Q)
{
Q->base=(ElemType *)malloc(sizeof(ElemType)*MAXQSIZE);
if(!Q->base)
return ERROR;
Q->front=Q->rear=0;
return OK;
}

//入队
int EnQueue(SqQueue *Q,ElemType e)
{
if((Q->rear+1)%MAXQSIZE==Q->front)//判断是否队满
return ERROR;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXQSIZE;//%MAXQSIZE必要吗???
}

//出队
int DeQueue(SqQueue *Q,ElemType *e)
{
if(Q->front==Q->rear)//判断是否队空
return ERROR;
*e=Q->base[Q->front];
Q->front=(Q-&

#include <stdio.h>
#include <stdlib.h>

#define MAXQSIZE 4
#define OVERFLOW 0
#define ERROR 0
#define OK 1

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

//初始化
int InitQueue(SqQueue *Q)
{
Q->base=(ElemType *)malloc(sizeof(ElemType)*MAXQSIZE);
if(!Q->base)
return ERROR;
Q->front=Q->rear=0;
return OK;
}

//入队
int EnQueue(SqQueue *Q,ElemType e)
{
if((Q->rear+1)%MAXQSIZE==Q->front)//判断是否队满
return ERROR;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXQSIZE;//%MAXQSIZE必要吗???
return 1;/*此句为添加内容*/

}

//出队
int DeQueue(SqQueue *Q,ElemType *e)
{
if(Q->front==Q->rear)//判断是否队空
return ERROR;
*e=Q->base[Q->fr