顺序结构循环队列的基本操作(一)(进队,出队)待优化

心不动则不痛 提交于 2019-11-27 08:48:41

#include<stdio.h>
#define ElemType int
#include<malloc.h>
#define MAXSIZE 10
typedef struct{
ElemType *data;
int front,rear;
}Queue;
typedef struct BitNode{
ElemType data;
struct Bitree *Lchild,*Rchild;
}BitNode;
Queue Init_queue(Queue Q){
Q.data=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));
Q.front=Q.rear=0;
return Q;
}
Queue Enter_queue(Queue Q,ElemType e){
if((Q.rear+1)%MAXSIZE==Q.front){
printf("队满");
}else{
*(Q.data+Q.rear)=e;
Q.rear=(Q.rear+1)%MAXSIZE;
}
return Q;
}
Queue Leave_queue(Queue Q){
ElemType e;
if(Q.rear==Q.front){
printf("队空");
}else{
printf("eo");
e=*(Q.data+Q.front);
printf("%d出队\n",e);
Q.front=(Q.front+1)%MAXSIZE;
}
return Q;
}
int main(){
Queue Q;
int e,a;
Q=Init_queue(Q);
printf("请输入入队的数:\n");
scanf("%d",&e);
while(e!=-1){
Q=Enter_queue(Q,e);
scanf("%d",&e);
}
while(*(Q.data+Q.front)){
Q=Leave_queue(Q);
}
return 0;

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!