收藏 分销(赏)

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

上传人:二*** 文档编号:4575445 上传时间:2024-09-30 格式:DOCX 页数:6 大小:24.88KB
下载 相关 举报
国开数据结构(本)课程实验报告.docx_第1页
第1页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、数据结构课程实验报告学生姓名学 号班 级指导老师实验名称线性表的链式存储结 构实验成绩实验报告实 验 概 述实验目的:掌握线性表的链式存储结构及基本操作,深入了解顺序表的基本特性。实验要求:1、建立一个评委打分的单向链表。2、显示删除相关结点后的链表信息。3、显示要求的结果。请认真阅读以上实验的问题描述,按照实验要求认真独立完成实验。如果在实 验过程中遇到困难,你可以通过以下辅助方式,顺利完本钱实验。实验基本原理:1、声明线性表的数据类型;2、一般在头文件中声明(该头文件中还应包括操作接口的声明);3、告诉编译器该数据类型占内存空间的大小;4、定义线性表类型的变量;5、在函数中或实现代码中的定

2、义;6、告诉编译器为变量分配内存空间;7、操作线性表类型变量;8、操作变量中保存的数据;实 验 内 容实验设计思路、步骤和方法等:1、评委信息结点用结构变量存储,包含三个成员项,即姓名、年龄、评分。 结构类型定义如下:定义评委信息struct pw(char name 8; 姓名short age; /年龄float score; 评分);2、用头插法或尾插法建立带头结点的单链表,本实验采用尾插法。3、遍历链表并逐次比拟求最高分和最低分。4、在链表中物理删除,即实际删除最高分和最低分结点;也可以进行逻辑删 除,即在被删结点的数据域设置一个删除标记,本实验采用物理删除的方法。5、遍历链表,累加求

3、和,计算总分及平均分,并输出相关信息。如果对于自己编写好的程序不知道是否正确,你可以查看“实验程序”进行核查。实验过程(实验中涉及的记录、数据、分析):实验1.1线性表的链接存储结构#include#include#includedefine 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 *c

4、reate (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 (该参赛者去掉一个

5、最高分和一个最低分后的有效评委的评分信息 如下: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; inext=NULL;q-next=p;q=p;return (head);输入评委信息,包括姓名、年龄和评分void input (NODE *s, int i) printf (请输入第%d个评委的姓名、年龄和评分:,i);scanf(%s

6、%d%f, &s-data. name, &s-data. age, &s-data. score);输出评委信息void output(NODE *s)printf (评委姓名:%6s年龄:%d评分:%6. 2fn, 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);)输出最高分及最低分评委信息,删除最高分及最低分结点并计算参赛者的

7、最后平 均分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. scorepmax-data. score) pmax=p;/pmax指向最高分结点if(p-data. scoredata, score) pmin=p;/pmin指向最低分结点C : Docusient s and Sett ingsAll Usersf

8、fisy 1 _ 1 Debugsy 1_6 5 0 0 88 7 8 9 75 6 8 2 84 3 4 5 3 a b c d e6 5 0 0 88 7 8 9 75 6 8 2 84 3 4 5 3 a b c d e分分分分分 评评评评评 口口 口口口 年禾禾禾不 3N3E43N3tM =1 -=1 一-=1- rEciEiE左 尔省答苞省4T7 /Yr 4TT 4TT 牙音A开K音K音A 评评评评评 个 12 3 4 5 BBS 入入入入入 1 HJ A ai A li A i_i A tf aiBf 青青青青青s I s S 评评评评评 5 6 8 2 8 4 3 4 5 3 T

9、=心心朋蛤心 口三三二-三三 力.耳耳耳耳拜 息信 a b c d e 分评 委答答答答答 rr_ L 二二二 _ 二_二_ 历平干平平正d 年龄:52 评分:90.00b 年龄:36 评分:75.00会出.商分的评查姓名:合出最显分的评委姓名:81.33一个最高分和一个最低分后的平均得分为:个最低分后的有效评委的评分信息如下:86.0080.0078.00W:评分,去掉一个最高分和一 :a年龄,45:c隼龄:48:e年龄338至名名 导三二4二二 费姓姓 参案萋 亥平平平any key to cont inue实验结果:实验的心得体会:实验小结1、线性表采用链式存储(链表)时,用结构变量存储

10、结点,动态生成结点, 用指针链接结点,能有效利用存储空间,插入删除方便。2、链表不能随机访问,是顺序访问方式,可从某结点访问到其后继结点, 通常对单链表的遍历即从表头结点顺序访问到表尾结点,任何在链表上做的查找运算都是 在遍历的基础上进行的。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 nex实验思考:指 导 教 师 评 语指导教师日期

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服