好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

数据结构课程实验报告

学生姓名 班 级 实验名称 实 验 概 述 学 号 指导老师 实验成绩 实验报告 实验目的: 掌握线性表的链式存储结构及基本操作,深入了解顺序表的基本特性。 实验要求: (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\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=1; 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 个评委的姓名、年龄和评分:\scanf(\} //输出评委信息 void output(NODE *s) { printf(\评委姓名:%6s 年龄:%d 评分:%6.2f\\n\} //遍历链表,输出所有评委的评分信息 void traverse(NODE *head) { NODE *p=head->next; //指向第一个结点 while(p!=NULL) { output(p); p=p->next; } printf(\} //输出最高分及最低分评委信息,删除最高分及最低分结点并计算参赛者的最后平均分 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->data.score; if(p->data.score>pmax->data.score) pmax=p; //pmax指向最高分结点 if(p->data.scoredata.score) pmin=p; //pmin指向最低分结点 p=p->next; } //输出最高分及最低分评委信息

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

数据结构课程实验报告学生姓名班级实验名称实验概述学号指导老师实验成绩实验报告实验目的:掌握线性表的链式存储结构及基本操作,深入了解顺序表的基本特性。实验要求:(1)建立一个评委打分的单向链表。(2)显示删除相关结点后的链表信息。(3)显示要求的结果。请认真阅读以上实验的问题描述,按照实验要求认真独立完成实验。如果在实
推荐度:
点击下载文档文档为doc格式
8qn154lh151xu1x81dzc4m0xd0pw4b00nnf
领取福利

微信扫码领取福利

微信扫码分享