




免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环队列的基本操作都可以实现,后面有代码。代码:#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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安庆市2025-2026学年七年级上学期语文期末测试试卷
- 阿勒泰市2025-2026学年八年级下学期语文月考模拟试卷
- 安徽省合肥市庐江县2023-2024学年高三下学期高考第一模拟考试(一模)语文试题及答案
- 2025 年小升初北京市初一新生分班考试语文试卷(带答案解析)-(人教版)
- 全国2025年4月概率论与数理统计(经)自考试题
- 社区表格基础知识培训课件
- 2025年云南省昭通市昭阳区中考物理模拟试卷(6月份)-自定义类型(含答案)
- 北京现房交易合同范本
- 关于典当标准合同范本
- 林地树木出售合同范本
- DeepSeek+AI大模型赋能制造业集团数字化转型端到端采购供应链及财务管控业务流程蓝图规划方案
- 2025年征兵心理测试题及答案
- B型脑钠肽BNP课件
- 《西红柿移栽和管理》课件
- 旋挖钻机直线传动行星滚柱丝杠设计与分析
- 《肺癌早期筛查与干预》课件
- 山东省济南市历城第一中学2024−2025学年高一下学期第一次阶段性测试(4月)数学试题(含解析)
- 完整的离婚协议书打印电子版(2025年版)
- 自然科学类博物馆AI应用行业跨境出海战略研究报告
- 《小学科学课程标准》解读与教学设计
- 2025届高考新型题目“纠正错别字”新题模拟练习
评论
0/150
提交评论