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

    实验报告(数据结构(本)-作业5)(实验2).docx

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

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

    实验报告(数据结构(本)-作业5)(实验2).docx

    学生姓名学 号班 级指导老师实验名称实验成绩实验报告实验概述实验目的:掌握线性表的链式存储结构及基本操作,深入了解顺序表的基本特性。实验要求:(1)建立一个评委打分的单向链表。(2)显示删除相关结点后的链表信息。(3)显示要求的结果。请认真阅读以上实验的问题描述,按照实验要求认真独立完成实验。如果在实验过程中遇 到困难,你可以通过以下辅助方式,顺利完本钱实验。实验基本原理:1)声明线性表的数据类型;2) 一般在头文件中声明(该头文件中还应包括操作接口的声明);3)告诉编译器该数据类型占内存空间的大小;4)定义线性表类型的变量;5)在函数中或实现代码中的定义;6)告诉编译器为变量分配内存空间;7)操作线性表类型变量;8)操作变量中保存的数据;实验实验设计思路、步骤和方法等:+(1)评委信息结点用结构变量存储,包含三个成员项,即姓名、年龄、评分。结构类型 定 义如下:定义评委信息struct pw容 char name 8; 姓名short age; 年龄float score; 评分);(2)用头插法或尾插法建立带头结点的单链表,本实验采用尾插法。(3)遍历链表并逐次比拟求最高分和最低分。(4)在链表中物理删除,即实际删除最高分和最低分结点;也可以进行逻辑删除,即在被 删结点的数据域设置一个删除标记,本实验采用物理删除的方法。(5)遍历链表,累加求和,计算总分及平均分,并输出相关信息。如果对于自己编写好的程序不知道是否正确,你可以查看“实验程序”进行核查。实验过程(实验中涉及的记录、数据、分析):实验线性表的链接存储结构ttincludeincludeincludettdefine PWRS 5 定义评委人数定义评委信息struct pw(char name 8; 姓名short age; 年龄float score; 评分;typedef struct pw PW;定义链表结点struct nodePW data;struct node * next;;typedef struct node NODE;NODE *create(int n); 建立单链表void input (NODE *s, int i); 输入第 i 个评委信息void output (NODE *s); 输出评委信息void traverse (NODE *head); 遍历链表void calc (NODE *head); 计算及数据处理void main ()NODE *head=NULL;head二create (PWRS); 建立评委信息单链表printf (un所有评委的评分信息如下:n");traverse (head); 输出所有评委的评分信息calc (head); 计算成绩printf ("该参赛者去掉一个最高分和一个最低分后的有效评委的评分信息如下:n”);traverse (head); 输出有效评委的评分信息尾插法建立带头结点的单链表NODE *create(int n)NODE *head,*p,*q;int i ;p=(NODE*)malloc(sizeof(NODE);head二p; q=p; p->next=NULL;for(i=l; i<=n; i+)(p=(NODE*)malloc(sizeof (NODE);input (p,i);p->next=NULL;q->next=p;q二P;return (head);)输入评委信息,包括姓名、年龄和评分void input (NODE *s,int i)(printf ("请输入第%d个评委的姓名、年龄和评分:”,i);scanf (,r%s%d%fn, &s-> ,&s-> ,&s-> ;)输出评委信息void output (NODE *s)printf ("评委姓名:%6s 年龄:%d 评分:%nn, s->, s->, s->;)遍历链表,输出所有评委的评分信息void traverse (NODE *head)(NODE *p=head->next; 指向第一个结点while(p!=NULL)output (p);p=p->next;)printf (nnn);输出最高分及最低分评委信息,删除最高分及最低分结点并计算参赛者的最后平均 分void calc(NODE *head)NODE *q,*p,*pmin,*pmax;float sum=0; 总分float ave=0; 平均分查找最高分和最低分并计算总分p=head->next;pmin=pmax=p;while (p!=NULL)sum+=p->;if (p-»pmax-> pmax=p; /pmax 指向最高分结点if (p-> pmin=p; /pmin指向最低分结点p=p->next;)输出最高分及最低分评委信息printf ("给出最高分的评委姓名:%6s年龄:%d评分:%nn,pmax->,pmax->,pmax->;printf("给出最低分的评委姓名:%6s年龄:%d评分:%nn,pmin->,pmin->,pmin->;printf ("n");去掉一个最高分和一个最低分,计算并输出参赛者的最后平均分sum-=pmax->;sum-=pmin->;ave=sum/ (PWRS-2);printf(“该参赛者去掉一个最高分和一个最低分后的平均得分为:%nn,ave);printf("n");在链表中删除最高分和最低分结点for (q=head,p=head-next;p!=NULL;q=p,p=p->next)(if (p=pmin) q->next=p->next; p=q; /删除最低分结点if(p二二pmax) q->next=p->next; p=q; 删除最高分结点实验结果:程序运行结果如下:C:Dociments and SettingsYAll U3er八桌面1_ 1 Debugsyl_l. exe'6854 a6854 a750884c0925 d7883 eLXJ 砰评评评评 一口口 口口口 二>二> rrr FT FT -<J - - J 二 J 二 J 二 J 正也止&止取止四止25名名名一二:一 一 一OCL ctx COB 吞££-£_委 一评评评评评 12 3 4 5 第第第第第 WJA-JA-JA-A-评评评评评5 6 8 2 84 3 4 5 3T:除除除 加年年年年年 自心a b c d e评的 委名名名名名 匿姓姓姓姓 所评评评评评高低 出出 合合名名姓姓8评评d 年龄:52 评分:90.00b 年龄:36 评分:75.00该参赛者去掉一个最高分和一个最低分后的平均得分为;81.33害名名蠢姓姓#耒桀R该评评评害名名蠢姓姓#耒桀R该评评评去掉一个最高分和一个最低分后的有效评委的评分信息如下:sa年龄;45评分;86.90;c年龄;48评分;80.00;e年龄;38评分;78.90Press any key to continue实验的心得体会:(1)线性表采用链式存储(链表)时,用结构变量存储结点,动态生成结点,用指针链接结点,能有效利用存储空间,插入删除方便。 实(2)链表不能随机访问,是顺序访问方式,可从某结点访问到其后继结点,通常对单 验a链表的遍历即从表头结点顺序访问到表尾结点,任何在链表上做的查找运算都是在遍小历的基础上进行的。结 (3)单链表操作的关键步骤包括:1)建立链表的头插法:指针变量p开辟单元,生成结点,指针变量q始终指向头结点; 操作为:p->next=q->next; q->next=p;2)建立链表的尾插法:指针变量p开辟单元,生成结点,指针变量q始终指向尾结点;操作为:q->next=p; q=p;3)插入:p结点的后面插入新结点s;操作为:s->next=p->next; p->next=s;4)删除:p, q指向相邻结点,q结点是p结点的后继,删除q结点;操作为: p->next=q->next;5)遍历:p指向后继结点;操作为:p=p->next;实验思考:指 导 教 师 评 语日期日期指导教师

    注意事项

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

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




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

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

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

    收起
    展开