欢迎来到天天文库
浏览记录
ID:47864342
大小:155.50 KB
页数:5页
时间:2019-08-03
《循环队列,出队,入队》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构循环队列的顺序结构实现以及队列的初始化、入队、出队等基本操作函数2009-11-1515:09#include#include#definemax50//队列的数据结构typedefstruct{intelement[max];//队列的元素空间intfront;//头指针指示器intrear;//尾指针指示器}SeqQueue;//函数声明表voidPrint(SeqQueue*Q);voidChoose(intchoice,SeqQueue*Q);voidInitQueue(SeqQueue*Q);intEnterQueue(SeqQue
2、ue*Q,intx);intDeleteQueue(SeqQueue*Q,int*x);voidPrintQueue(SeqQueue*Q);//主函数intmain(){SeqQueueQ;InitQueue(&Q);system("colora");//系统变色为浅绿Print(&Q);while(true){ printf("Pressentertocontinue........."); getchar(); getchar(); system("cls"); Print(&Q);}return0;}//重复刷新并打印功能选项列表来模拟面向对象编程的等待命令操作void
3、Print(SeqQueue*Q){intchoice;printf("MadeBy杨梅树的盔甲~O(∩_∩)O~");printf("---------------------");printf("使用说明:本程序可实现顺序结构构建队列及队列的初始化、入队、出队等基本操作.");printf("---------------------");printf("1.入队.");printf("2.出队.");printf("3.打印输出当前队列.");printf("4.按其它任意键退出.");printf("---------------------"
4、);printf("请选择你要的操作:");scanf("%d",&choice);Choose(choice,Q);}//选择功能函数voidChoose(intchoice,SeqQueue*Q){inti;intn;intx=0;switch(choice){case1: printf("请输入要入队的元素个数:"); scanf("%d",&n); printf("请依次输入要入队的%d个元素:",n); for(i=1;i<=n;i++) { scanf("%d",&x); EnterQueue(Q,x); } printf("入队成功!");
5、 break;case2: printf("请输入要出队的元素个数:"); scanf("%d",&n); printf("出队的%d个元素依次为:",n); while(n--) { DeleteQueue(Q,&x); printf("%d",x); } printf(""); printf("出队成功!"); break;case3: PrintQueue(Q); break;default: exit(0);}}//初始化队列函数voidInitQueue(SeqQueue*Q){//将*Q初始化为一个空的循环队列Q->front
6、=Q->rear=0;}//入队函数intEnterQueue(SeqQueue*Q,intx){//将元素x入队if((Q->rear+1)%max==Q->front)//队列已经满了{ returnfalse;}Q->element[Q->rear]=x;Q->rear=(Q->rear+1)%max;//重置尾指针returntrue;}//出队函数intDeleteQueue(SeqQueue*Q,int*x){//删除队列的队头元素,用x返回其值if(Q->front==Q->rear)//队列为空 returnfalse;*x=Q->element[Q->front];
7、Q->front=(Q->front+1)%max;//重新设置队头指针returntrue;}//打印输出队列voidPrintQueue(SeqQueue*Q){inti;for(i=Q->front;irear;i++){ printf("%d",Q->element[i]);}printf("");
此文档下载收益归作者所有