码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构

时间:2019-04-30 12:12:55      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:add   turn   while   oid   数据   ==   can   输出   sizeof   

include<stdio.h>

include<stdlib.h>

define max 30

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!