欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构上机实验报告.docx

    • 资源ID:11255834       资源大小:32.18KB        全文页数:11页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构上机实验报告.docx

    数据结构上机实验报告 实习报告 题 目 : 实现一个约瑟夫环程序 班级:031021姓名:王帅学号:03102076 一、需求分析 1 本演示程序中,利用单向循环链表存储结构存储约瑟夫环数据(即n个人的编号和密码)。 2 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示"提示信息"之后,由用户在键盘上输入演示程序中须要输入的数据,运算结果显示在其后。 3 程序执行的吩咐包括: 1)构造单向循环链表;2)进行数值的输入,并作推断分析;3)约瑟夫算法的实现与结果输出;4)结束。 4 测试数据 m 的初值为20;n=7,7个人的密码依次为:3,1,7,2,4,8,4,(正确的出列依次为6,1,4,7,2,1,3,5)。 二、概要设计 1单向循环链表的抽象数据类型定义为: ADT List 数据对象:D=ai | ai正整数,I=1,2,.,n,n0数据关系:R1= |,ai-1,aiD,I=1,2,.,n基本操作: Init List(&L) 操作结果:构造一个空的线性表L。 List Insert(&L,i,e) 初始条件:线性表L已存在,1iList Length(L)+1. 操作结果:在L中第i个位置之前插入新的数据元素e,L长度加1。List Delete(&L,i,&e) 初始条件:线性表L存在非空,1iList Length(L).操作结果:删除L的第i个元素,并用e返回其值,L长度减1。 2 程序包含四个模块: 1)主程序模块: void main( ) 初始化; for(; ;) while(吩咐=起先) 接受吩咐; 处理吩咐; for(; ;) 2)有序表单元模块实现有序表的抽象数据类型; 3)节点结构单元模块定义有序表的节点结构; 4)数据输入分析模块推断输入数据正确有效; 各模块之间的调用关系如下: 主程序模块 有序表结构模块 节点结构单元模块 数据输入分析模块 三、具体设计 1、结点类型,指针类型 TypedefstructLNode int code,date;/code 为人所在位置 date为人持有的密码 struct LNode *next; ; / 结点类型,指针类型 2、构造单向循环链表 struct LNode *p,*head,*q;/定义头节点,和指针 for(i=2;i struct LNode *s=(struct LNode *)malloc (sizeof(struct LNode); /安排 新结点空间 s->code=i; input(s->date); p->next=s; p=p->next; p->next=head; /依据输入的人数,进行单项循环链表的创建,p指向最终一个结点,并与头节点链接,形成单项循环链表 3、约瑟夫环的程序实现部分 while(n!=1)/推断输入人数,如为1则干脆输出结果,不循环 for(i=1,m=m%n;i 的前驱 p=p->next; q=p->next;/找到要删除节点 p->next=q->next;/找到要删除节点的后继,并连接新环m=q->date;/找到下一个密码 printf("%d",q->code); free(q);/释放已删除节点空间 n-;/链表长度减一 printf("%d",p->code); /约瑟夫环的结果输出 4、其他函数代码 数值的输入限制 int input() int y,k,z=0; char c;/元素类型 char a4;/数组初始化 if(!z)/输入推断,确定位数字或限制字符且位置和密码不为零 for(y=0;y c=getch(); if(c>=48&&c ay=c; putch(c); else y-; if(c='r')/确定输入为限制字符 即回车或者删除 break; else if(c=8) ay='n' y-; continue; k=atoi(a);/确定最终输入数字的值 printf("n"); z=k; if(z=0) printf("ERROR! The number couldn't be 0! n");/ 输入为零,重新输入 return(k);/数值的返回 5、函数的调用关系图反映程序层次结构 Maininput 四、调试分析 1、早期程序只写了约瑟夫环的实现部分,没有对输入数据进行筛选,调试的时候会常常出错。比如是输入字母,或者输入0,大于32767溢出; 2、早期的循环过程中没有进行优化,导致循环次数过多,奢侈时间; 3、为了输出时美观,分别在input和main函数主体内做了两次,输入非零的推断,奢侈了资源; 4、算法的时空分析 为了限制在输入过程中不会上溢,只在输入中限定为四个不全为零的数字,但是做的是dowhile循环,困难度为o(1); 当n大于1时: 在数据输入中,链表的创建是for循环,时间困难度为o(n-1) 在约瑟夫环实现程序中,为for循环。时间困难度为o(m%n -1) 当n=1时,困难度为o(1)。 五、用户手册 用户依据提示,先输入起始密码m,然后输入人数n,再依据人数,分别输入每个人的密码date,数值均不能为0,否则会提示重新输入,输入为字母则自动丢弃,输入错误可用删除键进行修改,输入完成后按回车键确定本次输入完毕(若输入数字大于9999,则第五位自动转换为下一个数字的起始位,依此类推)。 当n个数字全部输入完毕,则自动显示结果,按随意键则退出本程序。 六、测试结果 第一组:m 的初值为20;n=7,7个人的密码依次为:3,1,7,2,4,8,4,出列依次为6,1,4,7,2,1,3,5。 其次组: m 的初值为30;n=8,7个人的密码依次为:5,1,6,9,4,7,2,3,出列依次为6,5,2,3,7,1,4,8。 第三组 : m 的初值为15;n=6,7个人的密码依次为:5,3,4,7,6,9,出列依次为3,1,2,6,4,5。 七、附录 源程序头文件名清单: #include "malloc.h"/内存空间安排头文件 #include "stdio.h"/输入输出函数头文件 #include "stdlib.h"/input函数中字符串转短整形函数的头文件 #include "conio.h"/最终显示结果、清屏函数头文件 数据结构上机试验报告 数据结构上机试验报告 数据结构上机试验报告 链表 数据结构上机作业试验报告(六) 数据结构上机作业试验报告(五)举荐 数据结构试验报告 数据结构试验报告 数据结构试验报告 数据结构试验报告 数据结构试验报告 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第11页 共11页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页第 11 页 共 11 页

    注意事项

    本文(数据结构上机实验报告.docx)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开