克己ovo 2021-09-20 20:45 采纳率: 90%
浏览 19
已结题

为什么 出队的时候会出错


//顺序存储的队列
#include<stdio.h>
#include<stdlib.h> 
#define ElemType int
#define MaxSize 10 
//定义队列储存类型
typedef struct Qnode{
    ElemType data[MaxSize];
    int front;
    int rear;     
}*SqQueue,queue;
 
//初始化队列
bool InitQueue(SqQueue &q){            //传引用更加方便 
    q = (SqQueue)malloc(sizeof(queue));
    q->front=q->rear=0;
    printf("初始化成功!\n"); 
    return true;
}



//判断队列是否为空
bool QueueEmpty(SqQueue q){
    if(q->front==q->rear)
    return true;
    return false; 
} 


//入队操作

bool EnterQueue(SqQueue q,ElemType x){
    if((q->rear+1)%MaxSize==q->front)
    return false;
    q->data[q->rear] = x;
    q->rear = (q->rear+1)%MaxSize;
    return true;
} 


//出队操作
bool OutQueue(SqQueue q,ElemType &j){   //j用来保存出队数据 引用传递 
    if(QueueEmpty)
    return false;
    j = q->data[q->front];
    q->front=(q->front+1)%MaxSize;
    return true; 

}  
 
 
 
 
 
 
int main(){
    
    SqQueue q;
    int j,x;
    scanf("%d",&x);
    InitQueue(q);
    if(QueueEmpty(q))
    printf("队列为空\n"); 
    if(EnterQueue(q,x))
    printf("入队成功\n");
    for(int i =0 ;i<q->rear;i++)
    printf("%d\n",q->data[i]); 
    if(OutQueue(q,j))
    printf("kon");
    printf("%d",j);
    
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 克己ovo 2021-09-20 21:18
    关注

    66行 参数q少了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月28日
  • 已采纳回答 9月20日
  • 创建了问题 9月20日

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决