欢迎来到天天文库
浏览记录
ID:16194389
大小:39.50 KB
页数:4页
时间:2018-08-08
《【电大本科数据结构实验报告】线性表的链式存储结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、线性表的链式存储结构【问题描述】某项比赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序:(1)显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。(2)在链表中删除一个最高分和一个最低分的结点。(3)计算该参赛者去掉一个最高分和一个最低分后的平均成绩。【基本要求】(1)建立一个评委打分的单向链表;(2)显示删除相关结点后的链表信息。(3)显示要求的结果。【实验步骤;】(1)运行PC中的MicrosoftVisualC++6.0程序,(2)点击“文件”→“新建”→对话窗口中“文件”→“c++SourceFile”→在“文件名”
2、中输入“X1.cpp”→在“位置”中选择储存路径为“桌面”→“确定”,(3)输入程序代码,程序代码如下:head=create(PWRS);printf("所有评委打分信息如下:");print(head);//显示当前评委打分calc(head);//计算成绩printf("该选手去掉1最高分和1最低分后的有效评委成绩:");print(head);//显示去掉极限分后的评委打分}voidinput(NODE*s)#include#include#include#include#
3、include#defineNULL0#definePWRS5//定义评委人数structpw//定义评委信息{charname[6];floatscore;intage;};typedefstructpwPW;structnode//定义链表结点{structpwdata;structnode*next;};typedefstructnodeNODE;//自定义函数的声明NODE*create(intm);//创建单链表intcalc(NODE*h);//计算、数据处理voidprint(NODE*h);//输出所有评委打分数据voidinput(N
4、ODE*s);//输入评委打分数据voidoutput(NODE*s);//输出评委打分数据voidmain(){NODE*head;floatave=0;floatsum=0;{printf("请输入评委的姓名:");scanf("%S",&s->data.name);printf("年龄:");scanf("%d",&s->data.age);printf("打分:");scanf("%f",&s->data.score);printf("");}voidoutput(NODE*s){printf("评委姓名:%8s,年龄:%d,打分:%2.2f",s->d
5、ata.name,s->data.age,s->data.score);}NODE*create(intm){NODE*head,*p,*q;inti;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);}voidprint(NODE*h){for(inti=1;((i<=PWRS)&&(h->next!=NULL));i
6、++){h=h->next;output(h);}printf("");}intcalc(NODE*h){NODE*q,*p,*pmin,*pmax;floatsum=0;floatave=0;p=h->next;//指向首元结点pmin=pmax=p;//设置初始值sum+=p->data.score;p=p->next;for(;p!=NULL;p=p->next){if(p->data.score>pmax->data.score)pmax=p;if(p->data.scoredata.score)pmin=p;sum+=p->data.scor
7、e;}cout<<"给出最高分的评委姓名:"<data.name<<"年龄:"<data.age<<"分值:"<data.score<data.name<<"年龄:"<data.age<<"分值:"<data.score<data.score;sum-=pmax->data.score;for(q=h,p=h->next;p!=NULL;q=p,
此文档下载收益归作者所有