- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)