#include <stdio.h>#include <stdlib.h>#define maxsize 100typedef sturct{ int data[maxsize]; int front,rear;}SqQueue;void initQueue(SqQueue *qu){ qu->front=0; qu->reat=0;}int enQueue (SqQueue *qu,int x){ if ((qu->rear+1)%maxsize==qu->front) return 0; qu->rear=(qu->rear+1)%maxsize; qu->data[qu->rear]=x; return 1;}int deQueue(SqQueue *qu,int x){ if(qu->front==qu->rear) return 0; qu->front=(qu->front+1)%maxsize; x=qu->data[qu->front]; return 1;}int main(){ SqQueue qu; int a,n,e,b; printf("请输入入队元素个数\n"); scanf ("%d",&n); printf ("\n请输入入队元素\n"); while (n--) { scanf ("%d",&a); enQueue (&qu,a); } for(a=0;a<n-1;a++) printf ("%d",qu->data[a]); printf ("\n请输入入队元素e"); scanf ("%d",&e); enQueue (&qu,e); for(a=0;a<n;a++) printf ("%d",qu->data[a]); printf ("\n"); b=qu->data[qu->front]; deQueue(&qu,b); for(a=0;a<n-1;a++) printf ("%d",qu->data[a]); printf ("\n"); return 0;}希望帮忙看一下这是哪里错误了,谢谢。
你的逻辑我没有细看,这是我找出的语法上的错误,修改的地方用注释标出来了
#include <stdio.h>c语言循环队列的错误修改
\/\/fflush(stdin);\/\/用下面几句代码,替换fflush int c;if(feof(stdin) || ferror(stdin)){ break;}
c语言循环队列有点小问题,为什么这个输出的结果总比输入的少一个,,求...
getchar(); \/\/加一条语句,吃掉换行符就ok了
C语言循环队列问题求教
这个并没有错,可以根据图分开来算 front指针指向存储元素位置,rear指针指向第一个未存储元素位置 首先,队列上半部分,有元素,m-30+1;其次,队列下半部分,有元素,10-1;所以,总共的元素个数为total = m-30+1+10-1 = m-20
C语言用数组实现循环队列的入队出队
\/\/定义一个int型数组que,长度为N(常量切大于2).int que[N];int rear=0,front=0; \/\/队尾 队头判断队列已满:if((front+1)%N==rear%N) \/\/成立则队列已满判断队列为空 if((rear==front)) \/\/成立则队列空入队(一般在入队前判断队列是否已满)\/\/将val入队que[front++]=val;front%=N...
c语言关于双向循环队列的问题
你要删除p的前驱节点,那就是要删除p->prior这个节点。找其前端和后端。p->prior的前端:p->prior->prior。p->prior的后端:p。那么删除p->prior:就是 p->prior=p->prior->prior;(后端p的前指针直接指向其前端)。(p->prior已指向前端,这里直接写p->prior)p->prior->rear=p; (前端p-...
c语言循环队列
s=1表示循环队列中的成员个数为1,front=rear说明队列的头指针和尾指针都指向同一个队列成员,也就是说这个\/队列已经封闭了(首尾已经相接),那么这个队列也就满了 >>front=rear=m其中的m也不晓得是什么了 这个m就是具体的成员的地址了,front=rear=m,m就成了当前循环队列中唯一的成员 ...
C语言计算机二级考试循环队列元素个数怎么算
循环队列 Q[0:m]是 首先 队列一开始是 front = rear = m,所有队列都是x,表示无效数据。【1】【2】【3】【4】...【m-1】【m】【x】【x】【x】【x】...【x 】【 x 】如果插入一个数据 【a】表示有效数据 那么 front = 1, rear = m 【1】【2】【3】【4】...【m-1】...
数据结构顺序循环队列中取模(求余)问题,C语言
因为是循环队列 所以 完全有可能出现 队头在队尾后面的情况,即R<F 比如 一共10个元素 M=10 先入队9个元素,队头指向最后一个 即9 然后 出队5个元素,队尾指向5 再入队三个元素, 队头指向2 这是队内实际个数为(2-5+10)%10 = 7个 至于为什么要加上 是因为 当F=9 R=5的时候 (9...
C语言中循环队列的队满和队空的判断条件各是什么?有什么不同?
队满 是队列 只有一个空格的时候,插入指针 +1 =出队指针 对空,出队指针=插入指针
C语言中循环队列的队满和队空的判断条件各是什么?有什么不同?
队空时: Q.front == Q.rear;队满时: Q.front == (Q.rear + 1) % MAXSIZE;front指向队首元素,rear指向队尾元素的下一个元素。maxsize是队列长度。