为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构循环队列的删除问题

数据结构循环队列的删除问题

慕前端6184863 2018-04-02 21:56:26
#include<stdio.h>#include<stdlib.h>#define ERROR 0#define MAXQSIZE 100typedef int Status;typedef int QElemType;typedef struct{    int *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 0;}Status QueueLength(SqQueue *Q){    int length;    length=(Q->rear-Q->front+MAXQSIZE)%MAXQSIZE;    return length;}Status EnQueue(SqQueue *Q,QElemType e){    if((Q->rear+1)%MAXQSIZE==Q->front) return ERROR;    Q->base[(Q->rear+1)]=e;    Q->rear=(Q->rear+1)%MAXQSIZE;    return 0;}Status DeQueue(SqQueue *Q){    int e,test;    if(Q->front==Q->rear) return ERROR;    test=Q->front;    e=Q->base[Q->front];    Q->front=(Q->front+1) % MAXQSIZE;    return e;}void JudgeEmpty(SqQueue *Q){    if((Q->rear+1)%MAXQSIZE==Q->front) printf("The queue is full\n");    else  if(Q->rear==Q->front) printf("The queue is Empty\n");    else printf("The queue is not empty!\n");}/* void DestroyQueue(SqQueue *Q) {  } */int main(){    SqQueue Q;    int number,receive,i,transmission;    int length;    InitQueue(&Q);    printf("how many numbers do you want to enter:");    scanf("%d",&number);    for(i=1;i<=number;i++)    {        printf("The %d number:",i);        scanf("%d",&transmission);        EnQueue(&Q,transmission );    }    JudgeEmpty(&Q);    length=QueueLength(&Q);    printf("the length is %d\n",length);    receive=DeQueue(&Q);    printf("The first number is:%d",receive);    printf("\n");}出队函数那个调试有问题,设置了一个test来检验,但是好像都不对,但是我觉得我没敲错啊
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1022 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信