中央电大本科数据结构实验报告.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中央电大本科数据结构实验报告

实验名称:实验一 线性表 线性表的链式存储结构 【问题描述】 某项比赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序: 显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。 在链表中删除一个最高分和一个最低分的结点。 计算该参赛者去掉一个最高分和一个最低分后的平均成绩。 【基本要求】 建立一个评委打分的单向链表; 显示删除相关结点后的链表信息。 显示要求的结果。 【实验步骤】 运行PC中的Microsoft Visual C++ 6.0程序, 点击“文件”→“新建” →对话窗口中“文件” →“c++ Source File” →在“文件名”中输入“X1.cpp” →在“位置”中选择储存路径为“桌面” →“确定”, 输入程序代码, 程序代码如下: #include stdio.h #include stdlib.h #include malloc.h #include iostream.h #include conio.h #define NULL 0 #define PWRS 5 //定义评委人数 struct pw //定义评委信息 { char name[6]; float score; int age; }; typedef struct pw PW; struct node //定义链表结点 {struct pw data; struct node * next; }; typedef struct node NODE; NODE *create(int m); //创建单链表 int calc(NODE *h); //计算、数据处理 void print(NODE *h); //输出所有评委打分数据 void input(NODE *s);//输入评委打分数据 void output(NODE *s);//输出评委打分数据 void main() { NODE *head; float ave=0; float sum=0; head=create(PWRS); printf(所有评委打分信息如下:\n); print(head);//显示当前评委打分 calc(head);//计算成绩 printf(该选手去掉 1 最高分和 1 最低分后的有效评委成绩:\n); print(head);//显示去掉极限分后的评委打分 } void input(NODE *s) { printf(请输入评委的姓名: ); scanf(%S,s-data.name); printf(年龄: ); scanf(%d,s-data.age); printf(打分: ); scanf(%f,s-data.score); printf(\n); } void output(NODE *s) { printf(评委姓名: %8s ,年龄: %d,打分: %2.2f\n,s-data.name,s-data.age,s-data.score); } NODE *create(int m) { NODE *head,*p,*q; int i; p=(NODE*)malloc(sizeof(NODE)); head=p; q=p; p-next=NULL; for(i=1;i=m;i++){ p=(NODE*)malloc(sizeof(NODE)); input(p); p-next=NULL; q-next=p; q=p; } return (head); } void print(NODE *h) { for(int i=1;((i=PWRS)(h-next!=NULL));i++){ h=h-next; output(h); } printf(\n); } int calc(NODE *h) { NODE *q,*p,*pmin,*pmax; float sum=0; float ave=0; p=h-next; //指向首元结点 pmin=pmax=p; //设置初始值 sum+=p-data.score; p=p-next; for(;p!=NULL;p=p-next) { if(p-data.scorepmax-data.score) pmax=p; if(p-data.scorepmin-data.score) pmin=p;

您可能关注的文档

文档评论(0)

sandaolingcrh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档