版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于java数据结构实验--队列实验报告基于java数据结构实验--队列实验报告全文共7页,当前为第1页。实验报告基于java数据结构实验--队列实验报告全文共7页,当前为第1页。系部计算机系班级学号姓名课程名称数据结构实验日期2019-10-15实验名称队列成绩实验目的:1掌握顺序队列的存储结构的表示和实现方法;2掌握顺序循环队列基本操作的算法实现;3掌握循环链表的实现。4链表的应用举例。实验条件:eclipse实验内容与步骤:内容:建立顺序队列,在顺序队列上实现入队、出队等操作。建立顺序循环队列,在顺序循环队列上实现入队、出队等操作。步骤:1.顺序队列类classArrayQueue{ privateintmaxSize; privateintfront; privateintrear; privateint[]arr; publicArrayQueue(intarrmaxsize){ maxSize=arrmaxsize; arr=newint[maxSize]; front=-1; rear=-1; } publicbooleanisFull(){// returnrear==maxSize-1; returnrear==maxSize; } publicbooleanisEmpty(){ returnfront==rear; } publicvoidaddqueue(intn){ if(isFull()){ System.out.println("队满,不能加入");return; } rear++; arr[rear]=n; } publicintgetQueue(){ if(isEmpty()){ thrownewRuntimeException("队空,不能取数据"); } front++; returnarr[front]; } publicvoidshowqueue(){ if(isEmpty()){ System.out.println("队空,无数据" );return; } for(inti=0;i<arr.length;i++){ System.out.print("arr["+i+"]="+arr[i]+""); } System.out.println(); } publicintpeekqueue(){ if(isEmpty()){ thrownewRuntimeException("队空,不能取数据"); } returnarr[front+1]; }}2.顺序循环队列根据上述进行修改。mainArrayQueuemyQueue=newArrayQueue(3); charkey=''; Scannerscanner=newScanner(System.in); booleanloop=true; while(loop){ System.out.println("s(show):显示队列"); System.out.println("e(exit):退出程序"); System.out.println("a(add):加入队列"); System.out.println("g(get):出队列"); System.out.println("h(head):查看队头"); key=scanner.next().charAt(0); switch(key){ case's': myQueue.showqueue();break; case'a': System.out.println("输入一个数:"); intvalue=scanner.nextInt();基于java数据结构实验--队列实验报告全文共7页,当前为第2页。 myQueue.addqueue(value);基于java数据结构实验--队列实验报告全文共7页,当前为第2页。 break; case'g': try{ intres=myQueue.getQueue(); System.out.println("输出的数是:"+res); }catch(Exceptione){ //TODO:handleexception System.out.println(e.getMessage()); }(); System.out.println("队头数据为:"+res); }catch(Exceptione){ //TODO:handleexception break; case'h': try{ intres=myQueue.peekqueue System.out.println(e.getMessage()); } case'e': scanner.close(); loop=false; break; default: break; } } System.out.println("exit"); }运行结果:顺序队列运行测试及结果:基于java数据结构实验--队列实验报告全文共7页,当前为第3页。基于java数据结构实验--队列实验报告全文共7页,当前为第3页。顺序循环队列运行测试及结果:实验总结:通过这一次的实验,我不仅实现了队列的算法,还解决了上次作业遗留下来的问题。队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端为队尾,允许删除的一端为队头,先进先出,相邻元素具有前驱与后继关系。基于java数据结构实验--队列实验报告全文共7页,当前为第4页。附:源程序:基于java数据结构实验--队列实验报告全文共7页,当前为第4页。顺序队列:packagemain;publicclassSequeue<T>{ privateintMaxsize=20; privateintfront,rear; privateT[]arr; publicSequeue(){ front=rear=-1; arr=(T[])newObject[Maxsize]; } publicSequeue(intn){ front=rear=-1; arr=(T[])newObject[n]; } publicbooleanisEmpty(){ returnrear==front; } publicbooleanisFull(){ returnrear==Maxsize-1; } publicvoidadd(Tobj){ if(isFull()){ System.out.println("duilieyiman"); return; } rear++; arr[rear]=obj; } publicTgetQueue(){ if(isEmpty()){ thrownewRuntimeException("null"); } front++; returnarr[front]; } publicvoidshow(){ if(isEmpty()){ System.out.println("null"); } for(inti=front+1;i<=rear;i++){ System.out.print("arr["+i+"]="+arr[i]+""); } } publicTpeekQueue(){ if(isEmpty()){基于java数据结构实验--队列实验报告全文共7页,当前为第5页。 thrownewRuntimeException("队空,不能取数据");基于java数据结构实验--队列实验报告全文共7页,当前为第5页。 } returnarr[front+1]; } publicstaticvoidmain(String[]args){ Sequeue<String>queue1=newSequeue<String>(5); queue1.add("li"); queue1.add("ke"); queue1.add("wu"); queue1.add("fa"); queue1.add("xi"); queue1.show(); System.out.println(); System.out.println("出队的是:"+queue1.getQueue()); System.out.println("出队后:"); queue1.show(); //TODOAuto-generatedmethodstub }}循环顺序队列packagemain;publicclassCircleQueue<T>{ privateintMaxsize=20; privateintfront,rear; privateT[]arr; publicCircleQueue(){ front=rear=0; arr=(T[])newObject[Maxsize]; } publicCircleQueue(intn){ front=rear=0; arr=(T[])newObject[n]; } publicbooleanisEmpty(){ returnrear==front; } publicbooleanisFull(){ returnfront==(rear+1)%Maxsize; } publicvoidadd(Tobj){ if(isFull()){ System.out.println("duilieyiman"); return; }基于java数据结构实验--队列实验报告全文共7页,当前为第6页。 rear=(rear+1)%Maxsize;基于java数据结构实验--队列实验报告全文共7页,当前为第6页。 arr[rear]=obj; } publicTgetQueue(){ if(isEmpty()){ thrownewRuntimeException("null"); } front=(front+1)%Maxsize; returnarr[front]; } publicvoidshow(){ if(isEmpty()){ System.out.println("null"); } for(inti=front+1;i<=front+count();i++){ System.out.print("arr["+i+"]="+arr[i]+""); } System.out.println(); } publicintcount(){ return(rear+Maxsize-front)%Maxsize; } publicTpeekQueue(){ if(isEmpty()){ thrownewRuntimeException("队空,不能取数据"); } returnarr[(front+1)%Maxsize]; } publicstaticvoidmain(String[]args){ CircleQueue<String>queue2=newCircleQueue<String>(6); queue2.add("li"); queue2.add("ke"); queue2.add("wu"); queue2.add("fa"); queue2.add("xi"); queue2.show(); S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物在药物临床试验中的转化前沿进展
- 生物打印个性化皮肤模型在烧伤修复教学中的应用
- 深度解析(2026)《GBT 20674.1-2020塑料管材和管件 聚乙烯系统熔接设备 第1部分:热熔对接》(2026年)深度解析
- 考试题解析质量管理体系考试难点解析
- 公关策划师面试题目与解析
- 深度解析(2026)《GBT 19495.2-2004转基因产品检测 实验室技术要求》
- 深度解析(2026)《GBT 19445-2004贵金属及其合金产品的包装、标志、运输、贮存》
- 泰康保险品牌总监面试题集
- 数据运营面试题集含答案
- 玫瑰痤疮患者的心理支持方案
- 2025年植物标本采集合同协议
- 2025天津市第二批次工会社会工作者招聘41人考试笔试参考题库及答案解析
- 婴幼儿游戏指导课件 第7章第2节:婴幼儿社会性游戏的组织与实施
- 江西省人民防空工程标识标牌设置及制作规范图册(2021版)
- NB-T+10588-2021风力发电场集控中心运行管理规程
- 整理收纳师课件
- 护工的沟通技巧
- 浮选药剂及其作用原理资料课件
- 国开电大软件工程形考作业3参考答案
- 皮部经筋推拿技术操作方法及常见疾病的皮部经筋推拿技术
- 冠脉痉挛诊疗进展
评论
0/150
提交评论