- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环队列,出队,入队
数据结构 循环队列的顺序结构实现 以及队列的初始化、入队、出队等基本操作函数
2009-11-15 15:09
#includestdio.h#includestdlib.h
#define max 50
//队列的数据结构typedef struct{int element[max];//队列的元素空间int front;//头指针指示器int rear;//尾指针指示器}SeqQueue;
//函数声明表void Print(SeqQueue *Q);void Choose(int choice,SeqQueue *Q);void InitQueue(SeqQueue *Q);int EnterQueue(SeqQueue *Q,int x);int DeleteQueue(SeqQueue *Q,int *x);void PrintQueue(SeqQueue *Q);
//主函数int main(){SeqQueue Q;InitQueue(Q);
system(color a);//系统变色为 浅绿Print(Q);while(true){?? printf(Press enter to continue.........);?? getchar();?? getchar();?? system(cls);?? Print(Q);}return 0;}
//重复刷新 并 打印功能选项列表 来模拟面向对象编程的等待命令操作void Print(SeqQueue *Q){int choice;printf(Made By 杨梅树的盔甲~O(∩_∩)O~\n);printf(---------------------\n);printf(使用说明:本程序可实现顺序结构构建队列及队列的初始化、入队、出队等基本操作.\n);printf(---------------------\n);printf(1.入队.\n);printf(2.出队.\n);printf(3.打印输出当前队列.\n);printf(4.按其它任意键退出.\n);printf(---------------------\n);
printf(请选择你要的操作:);scanf(%d,choice);Choose(choice,Q);}
//选择功能函数void Choose(int choice,SeqQueue *Q){int i;int n;int x=0;switch(choice){case 1:?? printf(请输入要入队的元素个数:);?? scanf(%d,n);?? printf(请依次输入要入队的%d个元素:\n,n);?? for(i=1;i=n;i++)?? {??? scanf(%d,x);??? EnterQueue(Q,x);?? }???? printf(入队成功!\n);?? break;case 2:?? printf(请输入要出队的元素个数:);?? scanf(%d,n);?? printf(出队的%d个元素依次为:\n,n);?? while(n--)?? {??? DeleteQueue(Q,x);??? printf(%d ,x);?? }?? printf(\n);???? printf(出队成功!\n);?? break;case 3:?? PrintQueue(Q);?? break;default:?? exit(0);}}
//初始化队列函数void InitQueue(SeqQueue *Q){//将*Q初始化为一个空的循环队列Q-front=Q-rear=0;}
//入队函数int EnterQueue(SeqQueue *Q,int x){//将元素x入队if((Q-rear+1)%max==Q-front)//队列已经满了{?? return false;}Q-element[Q-rear]=x;Q-rear=(Q-rear+1)%max;//重置尾指针return true;}
//出队函数int DeleteQueue(SeqQueue *Q,int *x){//删除队列的队头元素,用x返回其值if(Q-front==Q-rear)//队列为空?? return false;*x=Q-element[Q-front];Q-front=(Q-front+1)%max;//重新设置队头指针return true;}
//打印输出队列void PrintQueue(SeqQueue
原创力文档


文档评论(0)