项目作业文档模板_第1页
项目作业文档模板_第2页
项目作业文档模板_第3页
项目作业文档模板_第4页
项目作业文档模板_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《算法与数据结构》课程设计报告姓名:班级:学号:指导教师:年月日课程设计综合成绩评定疑设计题目四一:煮约瑟夫生者忠死者游戏慧考核项目棉分值质A谊C恰得分书设计情况(舱共70分)趁设计工作量童与难度非20副设计工作量歪大与设计有目一定难度迫设计工作量逃与难度一般脊,基本达到梯了要求伪设计梨方案欺15棚设计方案正瞒确、合理工设计方案较弊正确、基本检合理,但不万是最优戏设计完成情畅况助35虎完成了选题抬的设计内容乔,设计功能凝完整,相关夫算法设计正斜确,程序结淘果正确、直趁观性好县基本完成了繁选题的设计碧内容及主要料选题功能,意相关算法设馅计基本正确动,程序结果致正确妻设计报告(役共15分)豪报告组织结妖构及内容枪10洪内容组织及愁结构合理、屠内容充实、尝层次清晰、惠图表得当蓄内容组织及妥结构较合理洲、内容较充惜实、层次较捷清晰、图表葱应用基本得伐当三报告排版格格式唉5悠格式规范,项完全符合要国求丢格式基本规驱范,基本符宣合要求反设计态度(辜共15分)懒15劲设计态度认错真、积极卫设计态度比跨较认真荒综合得分卵课程设计综糕合成绩(群折合为优、邻良、中、及匀格与不及格润计浮)颜其它说明:目录耐1.堆约瑟夫生者迅死者游戏金1猎1.1召项目简介主1昌1.2悔设计思路余1桑1.3星数据结构踪2脸1.4拘运行结果述2谢2载.土总结与分析反4附录5贱附录宵约瑟夫生者削死者游戏高程序源代码仿5既1耀.挪约瑟夫生者死死者游戏桂1隔.1谊项目简介汪约瑟夫生者太死者游戏阔的大意是泰:30个旅留客同乘一条摩船,因为严呀重超载,强加上风高浪疤大,威危险腐万分;因此哪船长告诉乘隐客,只有将冠全船一半的肚旅客投入张海中周,其余人才苦能幸免遇难习。无奈,大捧家只得同意夏这种办法,抓并议定锡30个令人芦围成一圈,维由第一个人闷开始,依次扭报数,数到大第9人,便搅把他投入大限海中,然后万从他的下一闯个人数起,徒数到第9人替,再将他投翁入大海,如馋此循环,直鼠到剩下15贪个乘客为止碧。问哪些位劝置是将被扔中下大海的位砖置。赠1得.2羞设计思路伏本游戏的数针学建模如下膛:左假设n个戚旅客酬排成一个环坟形,依次顺易序编号1,养2,…,n修。从某个指火定的第1号腰开始,沿环金计数,每数括到第m个人旷就让其出列虚,且从下一寄个人开始重城新计数,继逼续进行下去铜。这个过程声一直进行到有剩下k个旅讽客隔为止。敲本游戏的搏要求用户输彻入朗的过内容拢包括邀:咬1.旅客仅的个数,也踪就是n的值趣;婶2.产离开斤旅客薄的间隔焰数,从也就是m的企值孙;落3.击所有谅旅客阻的序号扒作为一组数耽据东要求概存放在某种卷数据结构中饭。演本游戏锣要求输出的慎内容是元包括涨1.店离开足旅客蹄的序号;嫂2.剩余钞旅客的联序号;驰所以,根据腹上面流的模型解分析服及纺输入输出参果数改分析起,隙可以定义一屈种数据结构顺后进行算法奉实现。奴1敢.3雕数据结构芝为了解决这班一问题,可库以用长度为字30的数组装作为线性存丸储结构,并曾把该数组看突成是一个首广尾相接的环屑形结构,那肆么每投入大卫海一个乘客评,就要在该阶数组的相应肥位置做一个壶删除标记,橡该单元以后急就不再作为件计数单元。反这样做不仅潮算法较为复啄杂,而且效拜率低,还要苗移动大量的拼元素。用单朗循环链表解送决这一问题交,实现的方它法相对要简朱单得多。首存先要定义链抢表结点,单稻循环链表的通结点结构与丸一般的结点牧结构完全相舅同,只是数难据域用一个明整数来表示鞋位置;然后堪将它们组成乞具有30个芳结点的单循城环链表。接谨下来从位置稼为1的结点嘉开始数,数菠到第8个结希点,就将下责一个结点从珍循环链表中跑删去,然后那再从删去结每点的下一个晕结点开始数迈起,数到第瘦8后个结点,再碑将其下一个关结点删去,稿如此进行下桌去,直到剩费下15个结盯点为止。槽为了不失一捉般性,将3饼0改为一个足任意输入的会正整数n,失而报数上限违(原为9)闲也为一个任读选的正整数镜k。这样该诉算法描述如稳下:雁(1)创偏建含有n个升结点的单循亲环链表;纳(2)生盒着与死者的谣选择:凳p指向链表舍的第一个结筛点,初始i辨置为1;顷while统(i<=n至/2)歪//删除一钓半的结点文{从p秀指向的结点愤沿链前进k饶-1步;关婆删除第k个仅结点(q所莲指向的结点蜘);尾牧p指向q的冤下一个结点嫂;库鬼输出其位置公q->da车ta;选偏i自增1;}壳(3)输司出所有生者俊的位置。奉1核.懂4耍运行懒结果氧3贤.扁总结与分析都此程序目前京的缺点在于修,结点密码役数据类型定构义的存储类由型是int雅型,不能超鼓过-214完74836辰48~21以47483烦648,一粗旦超过则程生序输出结果赴有误,另一直个缺点就是棵程序运行当理中,一旦中察途输入出现订错误,则无爆法返回,必罢须将当前操餐作结束等到壤下个主函数蜜的循环开始不,或者直接疤退出重新运估行此程序。泻优点则在于涂程序运行速粘度较快,不粉会出现输出尘结果有误的欢问题巨经过这次集恭中上机的实保验,从开始通选题到自己著上手还是编玻写程序的过鸦程中,我学娇会了很多的罗东西,以前侵对C语言的核知识和算法种总是模棱两砖可的,经过施这次练习,嘉在某些方面坏上还是经过炮了加强的训辟练。此次,区实验,从开泳始构建循环蹈链表然后实倾现约瑟夫环灰功能的过程食中,中途也屋遇见一些问械题,但都逐隐一克服,相县信在这次的病实验中提升依了较大的自骄身动手实践假能力。类学好数据结瓶构!附录泪附录刑1抛约瑟夫生者炼死者游戏程非序源代码盗LinkL组istI忆nitRi舍ng(in碰tn,弱LinkL主istR院)冬凶//抬尾插入法建阴立单循环链梢表函数{瓦闯ListN凤ode*哈p,*q汪;田门int引I夺;锐锡R=q=(座LinkN索ode*勇)mall乞oc(si歇zeof(丈LinkN顶ode))欺;访铲for(i哀=1;i<托n;i++厨){漏估命p=(Li叨nkNod掘e*)m黄alloc郑(size切of(Li享nkNod宗e));段全雕q->da句ta=扰i;租变予q->ne史xt=p;化口隶q=p;}客语p->da块ta=n;俭克p->ne叼xt=R;R=p;秩旅retur吨nR;}晶LinkL竭istD淡elete慢Death著(int京n,in抵tk,浸LinkL半istR病)越鹊//生者揭与死者的选博择{临铃inti要,j;塞象ListN领ode*悉p,*q贫;p=R;根柏for(i罢=1;i蒜<n/2;钢i++)伞{侧江//删除一完半结点辩勤闸for(j寺=1;j幸<k-1;挺j++)拦称//沿链前匠进k-1步扑毫扮本p=p->炉next;史情怀q=p->补next;签歌音p->ne发xt=q-绩>next胃;兰歉悠print跑f(笔“鸦%4d饰”剧,q->思data)赖;贤缺厌free(铺q);}世R=p;钥retur存nR;}盼救void朽OutRi搅ng(in率tn,锡LinkL旦istR扛){柔培涌者/渐/输出所有前生者挨挎梯int秧i;贩鱼千LinkN某ode*隙p;弃虎峰p=R;索菌繁for(i鞋=1;i<夜=n/2;捧i++,仰p=p-佣>next胳){艺跳样纽print眉f(弊“齐%4d芬”致,p->惹data)}}妙有了上述算笛法分析和设爬计之后,实达现就比较简予单了。首先升要定义一个汽链表结构类斯型,然后编企写一个主函春数调用上面许已定义好的脏函数即可。还主函数的源辱程序如下:榴#incl鹊ude<s鼻tdio.炎h>划#incl鲁ude<s码tdlib她.h>饥typed滋efst愁ruct小node{箩盲intd扰ata;莫钩struc赔tnod梦e*n塑ext;仅}List骑Node;容typed候efLi独stNod脖e*L节inkLi霸st;巷void胳main(鞋){斯蜻LinkL罪istR废;底菠intn镰,k;踏杯LinkL味istI淘nitRi材ng(in带tn,好LinkL洞istR肤);硬魄LinkL鸣istD客elete夺Dea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论