资源描述:
《数据结构与算法课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、这一页是封面.请自行设计62目录1课程设计一:约瑟夫环………………………………………………11.1问题描述……………………………………………………………………11.2基本要求……………………………………………………………………11.3算法思想……………………………………………………………………11.4模块划分……………………………………………………………………11.5数据结构……………………………………………………………………41.6源程序……………………………………………………………………41.7测试数据……………………………………………………………………111.8测试情况……………………
2、………………………………………………112课程设计二:哈弗曼编/译码系统……………………………………142.1问题描述……………………………………………………………………142.2基本要求……………………………………………………………………142.3算法思想……………………………………………………………………152.4模块划分……………………………………………………………………152.5数据结构……………………………………………………………………182.6源程序……………………………………………………………………202.7测试数据……………………………………………………………………402.8
3、测试情况……………………………………………………………………413课程设计三:推销员问题求解………………………………………483.1问题描述……………………………………………………………………483.2基本要求……………………………………………………………………483.3算法思想……………………………………………………………………483.4模块划分……………………………………………………………………483.5数据结构……………………………………………………………………503.6源程序……………………………………………………………………503.7测试数据……………………………………………………
4、………………603.8测试情况……………………………………………………………………61621课程设计一:约瑟夫环1.1问题描述约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数.报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止.试设计一个程序求出出列顺序.1.2基本要求程序要求用户输入编号最大值n,要求输入初始的报数上限m,然后要求输入每个人持有的密码,然后根据以
5、上数据构建一个单向循环链表存储结构模拟所有人的出列顺序,并按照出列的顺序印出各人的编号.如果用户输入的n,m,以及密码因子是非法输入(即输入非正整数),程序能够识别,并提示用户,然后程序终止.1.3算法思想①首先根据用户的输入构建好整个循环链表,用一个first指针指向最先进入链表的元素(即编号为1的元素),还要用一个size变量记录当前循环链表中有多少个元素.②根据m和size,计算m%size的值(即m和size取余),这个值确定first指针从自身开始顺时针移动多少个节点,到达待出列的节点(该节点即将被删除).③将first移动到上面计算出的节点,取出该节点的密码值,更新m.更新siz
6、e,使size减少1.输出该节点的编号,然后从链表中删除该节点(删除后,first的应该指向被删除节点的下一个位置).④重复上述②-③步,直到所有链表为空(即size=0).则完成了工作1.4模块划分总体预览:62下面是structnode中的变量解释:intbianhao;这是一个整型变量,记录节点的编号值.intmima;这是一个整形变量,记录节点的密码值.node*next_node;这是一个node*类型的指针变量,该指针指向下一个节点.下面是classjeoph中的函数和变量和解释:intsize;jepho类的私有变量,记录当前链表中已经存在多少个元素.node*first;je
7、pho类的私有指针变量,指向首先进入链表的元素,即编号为1的元素.node*end;62jepho类的私有指针变量,指向最后一个进入链表的元素,即编号为n的元素.node*current;jepho类的的私有指针变量,这个指针用途较多,在不同成员函数中用途不一样,将在1.6源程序中具体解释起用途.jeoph(intn_size);jepho类的默认构造函数,接收大小参数,初始化链表,使链表包含n_size个元