国开数据结构(本)课程实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程实验报告 学生姓名 学 号 班 级 指导老师 实验名称 线性表的链式存储结 构 实验成绩 实验报告 实 验 概 述 实验目的: 掌握线性表的链式存储结构及基本操作,深入了解顺序表的基本特性。 实验要求: 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、遍历链表,累加求和,计算总分及平均分,并输出相关信息。 如果对于自己编写好的程序不知道是否正确,你可以查看“实验程序”进行核查。 实验过程(实验中涉及的记录、数据、分析): 〃实验1.1线性表的链接存储结构 #include#include#include define PWRS 5 〃定义评委人数〃定义评委信息 struct pw (char name [8] ; //姓名 short age; 〃年龄float score; 〃评分 ); typedef struct pw PW;〃定义链表结点 struct node( PW 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 (〃\n所有评委的评分信息如下:\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(〃%s%d%f〃, s-data. name, s-data. age, s-data. score);} 〃输出评委信息void output(NODE *s) {printf (〃评委姓名:%6s年龄:%d评 分:%6. 2f\n〃, s-data. name, s-data. age, s-data. score);) 〃遍历链表,输出所有评委的评分信息void traverse (NODE *head){ NODE *p=head-next; 〃指向第一个结点while (p!=NULL) { output (p);p=p-〉next;} printf(〃\n〃);) 〃输出最高分及最低分评委信息,删除最高分及最低分结点并计算参赛者的最后平 均分void calc(N

文档评论(0)

153****2519 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档