




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。循环队列的基本操作都可以实现,后面有代码。代码:#include#include#include#include#define MAX_SIZE 10/定义循环队列的长度typedef struct int*base; int front; int rear; int full;/队列是否已满的标志位Queue;int creat_queue(Queue*q);int en_queue(Queue*q,int e);int out_queue(Queue*q,int*e);int destroy_queue(Queue*q);int length_queue(Queue*q);void main() Queue q; int m,n,i,e,f,f1,k=0; int a1,a2,a3,a4,a5,a6;/用来接函数返回值 int *e1,*e2; q.base=NULL; e1=e2=&k;/对于指针最好这样初始化定义一下,因为只声明是没有分陪内存的,不能直接用*e printf(-循环队列的基本操作-n); printf(-1.创建一个空队列-n); printf(-2.单次入队列-n); printf(-3.单次出队列-n); printf(-4.集体入队列-n); printf(-5.集体出队列-n); printf(-6.队列元素个数-n); printf(-7.销毁队列-n); printf(-0.退出-n);loop: printf(请选择:); scanf(%d,&m); switch(m) case 1: a1=creat_queue(&q); if(a1=0) printf(队列已经存在,请先销毁原来队列!n); break; printf(OK!队列创建成功!n); break; case 2: printf(请输入要入队列的元素(整型):); scanf(%d,&e); a2=en_queue(&q,e); if(a2=-1) printf(队列不存在,请先创建队列!n); break;else if(a2=0) printf(入队失败!因为队列满了!n); break;else printf(OK!入队成功!n); break; case 3: a3=out_queue(&q,e1); if(a3=-1) printf(队列不存在,请先创建队列!n); break; else if(a3=0) printf(出队失败!因为队列为空!n); break; else printf(OK!出队成功); printf(出队元素为:%dn,*e1); break; case 4: printf(请输入您要入队列的个数:); scanf(%d,&n);for(i=0;ibase!=NULL)/队列已经存在,要先销毁 return 0;q-base=(int*)malloc(MAX_SIZE*sizeof(int);q-front=q-rear=0;q-full=0;return 1;int en_queue(Queue*q,int e) if(q-base=NULL) return -1;/是队列不存在 else if(q-full=1&q-front=q-rear) return 0;/入队前考虑队列是否满了else q-baseq-rear=e; q-rear=(q-rear+1)%MAX_SIZE;/实现循环,如果rear+1满了并不是真正的满了,可以循环 if(q-front=q-rear) q-full=1; return 1;int out_queue(Queue*q,int*e) if(q-base=NULL) return -1;/是队列不存在 if(q-full=0&q-front=q-rear) return 0; /出队前考虑队列是否为空 else *e=q-baseq-front;q-front=(q-front+1)%MAX_SIZE;/修改front位置 if(q-front=q-rear)q-full=0;/如果出队后两位置相同则队为空了return 1;int destroy_queue(Queue*q) if(q-base=NULL) return 0;/是队列不存在 free(q-base); q-base=NULL;return 1; int length_queue(Queue*q) if(q-base=NULL) return -1;/是队列不存在 else if(q-full=1&q-front=q-rear) return MAX_SIZE;/满队列时else return(q-rear-q-front+MAX_SIZE)%MAX_SIZE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天心顺说课稿-2025-2026学年初中音乐粤教版七年级下册-粤教版
- 1感受生活中的法律 第二课时 教学设计-道德与法治六年级上册(部编版)
- 高中化学 专题1 洁净安全的生存环境 第1单元 空气质量的改善说课稿 苏教版选修1001
- 甘肃省民勤县第五中学七年级体育《篮球(原地单手肩上投篮、变方向运球)》说课稿 新人教版
- 2025浙江嘉兴海宁市国土空间规划设计有限公司招聘1人笔试历年参考题库附带答案详解(3卷合一)
- 2024-2025学年高中历史 第一单元 第一次世界大战 第1课 第一次世界大战的爆发教学说课稿2 新人教版选修3
- 2025年影视导演考试题库(附答案)
- 2025年行政执行考试题库及答案
- Unit 1 My classroom Part A大单元(教学设计)-人教PEP版英语四年级上册
- 4 匀变速直线运动的速度与位移的关系说课稿-2025-2026学年高中物理人教版必修1-人教版2004
- 造雪师培训课件
- 2025年广东省深圳市宝安外国语学校中考数学三模试卷
- 资产评估学教程(第八版)习题及答案
- 工业设计课件全套
- 道路运输企业安全生产责任制度
- 中西医结合治疗冠心病
- 膈疝介绍课件
- 注册电气工程师考试试题及答案
- 手术室护理工作中人文关怀和措施
- 2025年《儿童脑性瘫痪》标准课件
- 慢性胃炎针灸治疗
评论
0/150
提交评论