数据结构实践报告[收集].docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Compilation of reports 报 告 汇 编 20XX 数据结构实践陈述 学 号: 150906112 姓 名: 武锦蓉 班 级: NET2班 指导老师: 田喜平 时 间: 2016-12-21 项目名称 项目构思 程序由三个模块组成: (1)输入模块:无提示句子,直接输入总人数n和报数次数m,中心用逗号离隔。 (2)处理模块:将元素贮存于次序表中。在主函数中依据报数距离确认需求删去的元素的方位,在次序表中设置该方位并删去该方位,一起输出该方位的值。重复设置并删去直到表空。 (3)输出模块:别离在DOS下和文件中,按移除元素的次序顺次显现其方位。 约瑟夫环问题中的数据是人地点的方位,而这种数据是存在“榜首元素、最终元素”,而且存在“仅有的前驱和后继的”,契合线性表的特色。因为需求模仿约瑟夫环的出列问题,能够选用次序表来完结线性表,完结出列次序的输出。 中心算法首要分为两步: 1、确认需求删去的方位,2、设置并删去该方位。 已知报数距离m,咱们能够把当时方位加上m取得需求删去的方位,假如取得的方位超越次序表中实践元素的总长度,则能够经过减去数组的实践长度来批改(即模仿环状计数)。然后把次序表中的当时指向方位设置为该方位,继而删掉该方位。 重复进行上述确认方位和删去方位的操作,直到次序表为空。 程序首要功用模块 1、输入的方式和输入值的规模: 每一次输入的值为两个正整数,中心用逗号离隔。 若别离设为n,m,则输入格局为:“n,m”。 不对不合法输入做处理,即假定输入都是合法的。 2、输出的方式: 输出格局1:在字符界面上输出这n个数的输出序列 输出格局2:将这n个数的输出序列写入到文件中 3、程序所能抵达的功用: 关于输入的约瑟夫环长度n和距离m,输出约瑟夫环的出列次序。 4、测验数据:包含正确的输入及其输出成果和含有过错的输入及其输出成果。 正确: 输入:10,3 输出:3 6 9 2 7 1 8 5 10 4 输入:41,3 输出:3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41 7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35 16 31 过错: 输入:10 3 输出:6 8 7 1 3 4 2 9 5 10 程序清单 抽象数据类型的界说: 为完结上述程序的功用,能够用整数存储用户的输入。并将用户输入的值存储于线性表中。线性表ADT界说如下: ADT list 数据目标:整形 数据联系:线性联系,即ai,ai+1(0≤a<n)。 根本操作: bool remove(int elem)//移除一个元素,被移除的元素赋给elem //假如操作成功,回来true,不然回来false bool isEmpty()//判别数组的元素是否清空,空回来true,不然回来false bool setPos(int place)//设置当时元素的方位,设置成功回来true,不然回来false int getLength()//获取数组的实践长度 2、各程序模块之间的层次(调用)联系: 主函数会按规划的办法调用次序表中“获取实践长度”、“设置需求删去元素的方位”、“移除该方位元素”和“判别是否为空表”四种办法办法,使元素顺次出列,并正确完毕程序。 用整形存储用户输入的整数。 用次序表完结线性表: class AList { private: int *listArray;//指向数组的指针 int realSize;//数组中含有元素的实践长度 int fence;//指向当时元素下标 public: AList(int s)//结构函数,初始化数组 { listArray=new int[s]; for(int i=0;is;i++) listArray[i]=i+1;//数组值等于数组下标+1 realSize=s; fence=0;//指向首元素 } bool remove(int elem)//移除一个元素 { if(isEmpty())return false;//假如数组为空回来false elem = listArray[fence]; for(int i=fence;irealSize-1;i++)//从当时方位开端循环向前赋值 { listArray[i]=listArray[i+1]; } realSize--; return true; } bool isEmpty()//判别数组的元素是否清空 { if(realSize==0)return true; else return false; } bool setPos(int place)//设置当时元

文档评论(0)

蔡氏壹贰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档