数据结构 课程设计new

数据结构 课程设计new

ID:18394639

大小:288.50 KB

页数:15页

时间:2018-09-17

数据结构 课程设计new_第1页
数据结构 课程设计new_第2页
数据结构 课程设计new_第3页
数据结构 课程设计new_第4页
数据结构 课程设计new_第5页
资源描述:

《数据结构 课程设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、福建农林大学计算机与信息学院计算机类课程设计报告课程名称:算法与数据结构课程设计题目:约瑟夫环顺序表的实现姓名:张三系:计算机科学与技术专业:计算机科学与技术年级:2009级学号:091150001指导教师:宁正元职称:教授2011年8月20日福建农林大学计算机与信息学院计算机类课程设计结果评定评语:成绩:指导教师签字:任务下达日期:评定日期:目录1、课程设计目的12、课程设计要求13、课程设计方案14、课程设计内容24.1问题描述24.2系统运行环境24.3算法思想24.4算法实现24.5逻辑设计34.6详细设计(

2、源程序)54.7程序调试与测试结果74.8调试分析95、总结10参考文献11约瑟夫环顺序表的实现1、课程设计目的Ø熟悉掌握线型表的基本操作在顺序表的实现的,其中以操作和应用作为重点。Ø利用顺序存储结构模拟此过程,按照出列的顺序输出各个数的编号。Ø初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。Ø提高综合运用所学的理论知识和方法以及独立分析和解决问题的能力。2、课程设计要求本程序中,初始密码和每个人的密码为1~9999,人数为1~30,先输入初始密码m,再输入人数n,接下来输入n个正整数,数与

3、数之间用逗号隔开,作为这n个人的密码。程序只需做出处理一个案例,即程序给出一个约瑟夫环的答案之后即可推出,如果用户有第二个案例,需再运行本程序。程序应该以模拟约瑟夫环运行情况的方式求解,即不得采用公式计算等其他数学方式求解。3、课程设计方案本程序包含三个基本模块Ø主程序模块:其中又包括建立线性表和模拟约瑟夫环处理两大过程Ø线性表模块:实现线性表的抽象数据类型Ø元素结构单元模块:定义线性表每个元素的结构运用顺序表的数据结构,通过顺序表模拟围坐的一圈人,然后根据相应的密码进行报数,然后删除相应的节点。由键盘输入总人数,再

4、依次输入每个人和密码建立人员表,再输入开始报数人的位置及初始报数上限,按照出列顺序输出每个人。-12-4、课程设计内容4.1问题描述编号为1,2…n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从某一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。4.2系统运行环境Ø操作系统:WindowsXPØ运行软件:VC++6.

5、04.3算法思想算法思想是:从l至m对带头结点的线性表计数,到m时,输出该结点的编号值,将该结点的密码作为新的m值,再从该结点的下一个结点起重新自1起循环计数。如此下去,直到线性表空时过程结束。4.4算法实现ØStatusInitList(SqList&L)//初始化顺序表LØStatusListInsert(SqList&L,inti,ElemTypee)//在顺序表中第i个位置之前插入新的数据元素eØStatusListDelete(SqList&L,inti,ElemType&e)//在顺序表中删除第i个元素,

6、并用e返回其值(1)构造空的线性表(2)在空的线性表中插入元素(3)删除线性表中报m数-12-算法具体步骤如下:输入-àinitList(L)--àcurrent=((current-1)+m)%ListLength(L)--à断current===0若是:执行current=ListLength(L);S=ListDelete(L,current,e返回current==0再判断若否:执行“返回”4.5逻辑设计1、定义结构体定义一个结构体,里边定义两个元素:人的编号及其密码。Typedefstructnode{in

7、tnumber;//节点编号intpwd;//节点密码}ElemType;//节点类型typedefstruct{intlength;//顺序表当前长度intlistsize;//顺序表当前分配的存储容量ElemType*elem;//顺序表存储空间基地址}SqList;//顺序表类型StatusInitList(SqList&L){//初始化顺序表LL.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)returnERROR;L.l

8、ength=0;//空表长度为0L.listsize=LIST_INIT_SIZE;//初始存储容量returnOK;}2、约瑟夫环输出StatusListInsert(SqList&L,inti,ElemTypee){//在顺序表中第i个位置之前插入新的数据元素eElemType*base,*q,*p;if(i<0

9、

10、i>L.length)r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。