标签:add turn while oid 数据 == can 输出 sizeof
typedef struct{
int *data;
int front,rear;
}circqueue;
//给队列赋值
int firstadd(circqueue q){
q->data=(int)malloc(max*sizeof(int));
int x;
printf("请输入赋值数:");
scanf("%d",&x);
while(x!=0&&q->rear!=max-1){
q->data[q->rear++]=x;
printf("请输入赋值数:");
scanf("%d",&x);
}
return 0;
}
//返回队列的元素个数
int returnmath(circqueue *q){
return (q->rear-q->front+max)%max;
}
//将元素插入x插入队尾
int enqueue(circqueue *q,int x){
if((q->rear+1)%max==q->front){
return 0;
}
q->data[q->rear]=x;
q->rear=(q->rear+1)%max;
return 1;
}
//删除队头元素并将其返回
int dequeue(circqueue *q){
if(q->front==q->rear){
printf("队空,无法删除");
return 0;
}
q->front=(q->front+1)%max;
return 1;
}
//返回队头元素
int gotoqueue(circqueue *q){
return q->data[q->front];
}
//输出队列各个元素
void printfqueue(circqueue *q){
for(int i=q->front;i!=q->rear;i=(i+1)%max){
printf("输出元素为%d\n",q->data[i]);
}
}
//主函数中实现
main(){
circqueue q;
q=(circqueue)malloc(sizeof(circqueue));
q->front=q->rear=0;
if(firstadd(q)==0){
printf("赋值成功!\n");
}
printf("元素的个数为%d\n",returnmath(q));
int x;
printf("请输入进队元素");
scanf("%d",&x);
if(enqueue(q,x)==1){
printf("插入成功!\n");
}
else{
printf("队列已满,无法插入!\n");
}
if(dequeue(q)==1){
printf("删除队头成功!\n");
}
printf("队头元素为%d\n",gotoqueue(q));
printfqueue(q);
}
标签:add turn while oid 数据 == can 输出 sizeof
原文地址:https://www.cnblogs.com/javalv/p/10795171.html