永发信息网

为什么这个循环队列基本操作程序运行的时候报错,求高手指导!

答案:2  悬赏:50  手机版
解决时间 2021-02-09 22:57
#include
#include
#define maxsize 10
typedef struct
{
int data[maxsize];
int front,rear;
}seqqueue;

void init_queue(seqqueue*Q)
{
Q=(seqqueue*)malloc(sizeof(seqqueue));
Q->front=0;
Q->rear=0;
}

int queue_empty(seqqueue Q)
{
if(Q.front==Q.rear)
return 1;
else
return 0;
}

int queue_full(seqqueue Q)
{
if((1+Q.rear)%maxsize==Q.front)
return 1;
else
return 0;
}

void queue_front(seqqueue Q,int &x)
{
if(queue_empty(Q)==1)
printf("队空");
else
x=Q.data[(Q.front+1)%maxsize];
}

void En_queue(seqqueue*Q,int x,int n)
{
int i;
if(queue_full(*Q)==1)
printf("溢出");
else
{
Q->rear=(1+Q->rear)%maxsize;
Q->data[Q->rear]=x;
}
for(i=0;i printf("%d",Q->data[i]);
}

void Out_queue(seqqueue*Q)
{
if(queue_empty(*Q)==1)
printf("下溢出");
else
Q->front=(Q->front+1)%maxsize;
}

int main()
{
int x,n,i,k;
seqqueue *Q;
init_queue(Q);
printf("请输入循环队列中元素的个数\n");
scanf("%d",&n);
printf("请输入队列中的元素\n");
for(i=0;i {
scanf("%d",&Q->data[i]);
printf("请输入下一个元素\n");
}
printf("请选择要进行的操作:1 入队,2 出队");
scanf("%d",&k);
switch(k)
{
case 1:
{
printf("请输入要插入的值 ");
scanf("%d",&x);
En_queue(Q,x,n);
break;
}
case 2:
{
Out_queue(Q);
break;
}
}
return 0;
}
最佳答案
//初始化不要传拷贝值。应当修改成这样。
void init_queue(seqqueue* &Q);
另外循环队列入队(输入数据)不要用main函数里面那样直接输入数据。应该调用en_queue()函数,不然你的循环队列会错误。
全部回答
任务占坑
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
某学生用量筒量取液体,将量筒放平,俯视凹液
舞魅舞蹈培训中心在哪里啊,我有事要去这个地
圣贝口腔(佳木斯同江)地址在什么地方,我要处
x乘减16等于76
今年26岁了 女 工作稳定公务员 相过几次亲了
买的卤猪肉里面发现皮和肉之间有红色像米粒一
康美口腔(哈尔滨呼兰区)地址有知道的么?有点
和记粥城地址在哪,我要去那里办事
关于总承包单位、对专业分包单位管理,说法正
地皮胶如何去除
剑门关门票多少钱
雅康口腔门诊部(黑河爱辉)地址在什么地方,我
暗黑破坏神2 单击6boss无法合成钥匙
阳光城(西南门)地址在哪,我要去那里办事
已知线段AB=20cm,在直线AB上有一点C,且BC=6cm
推荐资讯
四个月的萨摩耶 喂食狗粮 想加点鸡胸肉,怎么
被狗咬出血与狗的血碰到要紧吗
游戏王混沌力量城之内安卓版
广润大厦停车场(汶阳大街)怎么去啊,我要去那
富士康在临沂南坊建厂,有知道具体位置和内幕
五金机电物资地址在哪,我要去那里办事
2.1音响左右声道不分,出现混音是什么情况。
江门出入境检验检疫局台山办事处地址有知道的
乡镇的私房买卖都要交什么税费
潍坊139号段有那些?
我有个咖色的中长款风衣,想搭配膝盖上方3CM
单选题植物组织培养的意义包括①培育大量的优
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?