(中央电大)数据结构实验报告18.docx

上传人:夺命阿水 文档编号:1363360 上传时间:2024-06-14 格式:DOCX 页数:7 大小:36.87KB
返回 下载 相关 举报
(中央电大)数据结构实验报告18.docx_第1页
第1页 / 共7页
(中央电大)数据结构实验报告18.docx_第2页
第2页 / 共7页
(中央电大)数据结构实验报告18.docx_第3页
第3页 / 共7页
(中央电大)数据结构实验报告18.docx_第4页
第4页 / 共7页
(中央电大)数据结构实验报告18.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《(中央电大)数据结构实验报告18.docx》由会员分享,可在线阅读,更多相关《(中央电大)数据结构实验报告18.docx(7页珍藏版)》请在课桌文档上搜索。

1、中心广播电视高校试验报告(学科:数据结构)姓名单位班级学号试验日期成果评定老师签名批改日期试验名称:试验一线性表线性表的链式存储结构【问题描述】某项竞赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序:(1)显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。(2) 在链表中删除一个最高分和一个最低分的结点。(3) 计算该参赛者去掉一个最高分和一个最低分后的平均成果。【基本要求】(1) 建立一个评委打分的单向链表;(2) 显示删除相关结点后的链表信息。(3) 显示要求的结果。【试验步骤】(1) 运行PC中的MicrosoftVisualC+6.0程序

2、,(2) 点击“文件”一“新建”一对话窗口中“文件”f“c+SourceFile”一在“文件名”中输入“Xl.cpp”f在“位置”中选择储存路径为“桌面”一“确定”,(3) 输入程序代码,程序代码如下:#include#include#include#include#include#defineNU1.1.0#definePWRS5/定义评委人数structpw定义评委信息charname6;floatscore;intage;1;typedefstructPWPW;structnode定义链表结点structpwdata;structnode*next;1;typedefstructnode

3、NODE;NODE*create(intm);仓IJ建单链表intcalc(NODE*h);/计算、数据处理voidprint(NODE*h);输出全部评委打分数据voidinput(NODE*s);输入评委打分数据voidoutput(NODE*s);输出评委打分数据voidmain()(NODE*head;floatave=0;floatsum=0;head=create(PWRS);Primf(全部评委打分信息如下下”);Print(head);/显示当前评委打分calc(head);计算成果Printf(该选手去掉I最高分和1最低分后的有效评委成果:n);Print(head);显示去

4、掉极限分后的评委打分)voidinput(NODE*s)(Primf(请输入评委的姓名:);scanf(%S,data.name);Primfe年龄:,);scanf(%d,data.age);Printf(打分:);scanf(%,data.score);printf(n);)voidoutput(NODE*s)(Printf(评委姓名:8s,年龄:%d,打分:%2.2n,s-data.name,s-data.age,s-data.score);)NODE*create(intm)(NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE);head=

5、p;q=p;p-next=NU1.1.;fbr(i=l;inext=NU1.1.;q-next=p;q=p;)return(head);)voidprint(NODE*h)for(inti=l;(inext!=NU1.1.);i+)h=h-next;output(三);)printf(,n);)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!=NU1.1.;p=p-next)(if(p-da

6、ta.scorepmax-data.score)pmax=p;if(p-data.scoredata.score)pmin=p;sum+=p-data.score;),data.age,分值:,data.age11分值:cout给出最高分的评委姓名:data.name年龄:data.scoreendl;cout给出最低分的评委姓名:,data.name,年龄:data.scoredata.score;sum-=pmax-data.score;for(q=h,p=h-next;p!=NU1.1.;q=p,p=p-next)(if(=pmin)q-next=p-next;P=q;删除最低分结点if

7、(p=pmax)q-next=p-next;P=q;删除最高分结点ave=sum(PWRS-2);cout该选手的最终得分是:aveendl;return1;程序运行结果如下:*C:Docu三cntsandSottinesasu3JBic31123Dcbuex1.cxcW分:78扁I入评委的姓名:b33件龄:33打分:88焉入评委的姓名:C件龄:40,了分:99扇1入评委的姓名:d件龄:35门分:6?3萌人评委的姓名:e件龄:29j分:89干prrl1.EJUt-kl-打分信息如下三a,龄龄龄龄龄-U?0000加加加后工最掉的去名名名手手建建建R洗7(委亥3,J,分分氐5.3,3AM432评0

8、0器蚊8.8.9.8R线性表的依次存储结构【问题描述】用依次表A记录学生的信息,编写程序:(I)将A表分解成两个依次表B和C,使C表中含原A表中性别为男性的学生,B表中含原表中性别为女性的学生,要求学生的次序与原A表中相同。(2)分别求男生和女生的平均年龄【基本要求】(1) 建立学生信息的依次表A。(2) 显示B表和C表中的相关信息。(3) 显示计算结果。【试验步骤;】(1)运行PC中的MicrosoftVisualC+6.0程序,(2)点击“文件”一“新建”一对话窗口中“文件”一“c+SourceFile”一在“文件名”中输入“Xl.cpp”f在“位置”中选择储存路径为“桌面”一“确定”,(

9、3)输入程序代码,程序代码如下:#include#include#include#include#include#include包含库函数Strcpy的头文件#defineNU1.1.Ostructstudent定义学生信息charnamel8;intsex;0女:1:男intage;;typedefstructstudentSTD;intcreate(STD*m);创建依次表intcalc(STD*m,STD*n,STD*r,float&Fage,float&Mage);/计算、数据处理voidprint(STD*m);constintMAX=Io0;定义人数voidmain()(STDAM

10、AX;STDBlMAX;STDCMAX;floatage1=0,age2=0;agel男age2女create(八);Printf(学生总表A记录如下:n);print(八);calc(A,B,C,ageI,age2);Printf(女生名册B记录如下:);print(B);Printf(男生名册C记录如下:);print(C);)intcreate(STD*m)(intn;Printf(”请输入班级总人数:n);scanf(%d,(fen);m0.age=n;置依次表长度Printf(请输入学生信息:n);for(inti=l;i=n;i+)(Printfr姓名:);scanf(,%sfem

11、i.name);Printf(性别0女1男:);scanf(,%d,mi.sex);Printf(“年龄:);scanf(H%d,&mi.age);printf(,n11);return1;intcalc(STD*m,STD*n,STD*r,float&Fage,float&Mage)inti,j=l,k=l;n0.age=r0.age=0;for(i=l;i=mO.age;i+)if(mi.sex=0)(strcpy(nj.name,mi.name);nj.sex=mi.sex;nj.age=mi.age;n0.age+;Mage+=mi.age+;)else(strcpy(rk.name,

12、mij.name);rk.sex=mi.sex;rk.age=mi.age;rO.age+;Fage+=miJ.age;k+;)Mage=Magen0.age;Fage=FagerO.age;CoUt”女生的平均年龄是:Mage”男生的平均年龄是:Fageendl;returnI;)voidprint(STD*m)(for(inti=l;i=mlO.age;i+)(Printf(姓名:3s,性别(0女1男):d,年龄:dn,mi.name,mi.sex,mi.age);程序运行结果如下:姓名:ddd性别。女1男:I年龄:15姓名:ddd性别0女1男:1年龄:14-F:女女女女女:F:女女女F:女女-000003e1100011000如JJJJEK如J如JJnext=q-next;q-next=p;尾插法:指针变量q始终指向尾结点,P指针开拓单元,生成结点:q-next=p;q=p;7S:P所指向结点的后面插入新结点S所指结点snext=p-next;p-next=s;?删除:p,q指向相邻结点,q所指结点是p所指结点的后继,删除q所指结点,p-next=q-next;?遍历:p=p-next;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号