数据结构实验报告1

上传人:工**** 文档编号:500789079 上传时间:2022-10-10 格式:DOCX 页数:7 大小:46.62KB
返回 下载 相关 举报
数据结构实验报告1_第1页
第1页 / 共7页
数据结构实验报告1_第2页
第2页 / 共7页
数据结构实验报告1_第3页
第3页 / 共7页
数据结构实验报告1_第4页
第4页 / 共7页
数据结构实验报告1_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数据结构实验报告1》由会员分享,可在线阅读,更多相关《数据结构实验报告1(7页珍藏版)》请在金锄头文库上搜索。

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

2、0 程序,(2)点击“文件”一“新建”一对话窗口中“文件” 一“c+ Source File” 一在“文件名”中输入“Xl.cpp” 一在“位置”中选择储存路径为“桌面” 一“确定”,( 3) 输入程序代码,程序代码如下:#include #include #include #include #include #define NULL 0#define PWRS 5 /定义评委人数struct pw /定义评委信息 char name6;float score;int age;typedef struct pw PW;struct node /定义链表结点struct pw data;stru

3、ct 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)

4、;/计算成绩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.2fn,s-data.name,s-data.age,s-data.score);NODE

5、*create(int m)NODE *head,*p,*q;int i;p=(NODE*)malloc(sizeof(NODE);head=p;q=p;p-next=NULL;for(i=1;inext=NULL;q-next=p;q=p;return (head);void print(NODE *h) for(int i=1;(inext!=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=p

6、max=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.scoredata.score) pmin=p;sum+=p-data.score;coutvv给出最高分的评委姓名:vvpmax-data.namevv年龄:vvpmax-data.agevv分值: data.scoredata.namevv年龄: vvpmin-data.agevv分值: data.scoredata.score;sum-=pmax-data.score

7、;for (q=h,p=h-next;p!=NULL;q=p,p=p-next)if(p=pmin)q-next=p-next; p=q;/删除最低分结点if(p=pmax) q-next=p-next; p=q;/删除最高分结点ave=sum/(PWRS-2);coutvv该选手的最后得分是:vvavevvendl;return 1;程序运行结果如下:八 *C: WucuBonts and Set1 jint:sagiirfti Xchh-4 I M23DfciiHll ot:aI.&3妁A- s S 输專评-S.T :峯打评昨&?评曲艸 X 睾抓舉打? - - - - -X - -讦矩链姓

8、姓S3?所评评予讦评- -*- -ahudL日沖胡0百V詡0n5-J0 5- .42432牡合出li-ft低分后的有蝕评委咸绩三45.W: 78.69打为S B-0B胡打井工們詡3ii n |j kev To cuinriniw线性表的顺序存储结构【问题描述】用顺序表A记录学生的信息,编写程序:(1)将A表分解成两个顺序表B和C,使C表中含原A表中性别为男性的学生,B表中含原表中性别为 女性的学生,要求学生的次序与原A表中相同。(2)分别求男生和女生的平均年龄【基本要求】(1)建立学生信息的顺序表A。(2)显示B表和C表中的相关信息。(3)显示计算结果。【实验步骤;】(1)运行 PC 中的 M

9、icrosoft Visual C+ 6.0 程序,(2)点击“文件”一“新建”一对话窗口中“文件” 一“C+ Source File” 一在“文件名”中输入“Xl.cpp” 一在“位置”中选择储存路径为“桌面” 一“确定”,(3)输入程序代码,程序代码如下:#include vstdio.h#include vstdlib.h#include vmalloc.h#include viostream.h#include #include /包含库函数 strcpy 的头文件#define NULL 0 struct student /定义学生信息 char name8;int sex; /0

10、女: 1:男int age;typedef struct student STD;int create(STD *m); /创建顺序表int calc(STD *m,STD *n,STD *r,float &Fage,float &Mage); /计算、数据处理 void print(STD *m);const int MAX=100; /定义人数void main()STD AMAX;STD BMAX;STD CMAX;float age1=0,age2=0; /age1 男 age2 女 create(A);printf(”学生总表A记录如下:n);print(A); calc(A,B,C

11、,age1,age2);printf(女生名册B记录如下:n);print(B);printf(”男生名册C记录如下:n);print(C);int create(STD *m)int n;printf (请输入班级总人数:n ); scanf (%d,&n);m0.age=n; /置顺序表 长度printf(请输入学生信息:n);for(int i=1;i=n;i+)printf(姓名:);scanf(%s,&mi.name);printf(”性别 0 女 1 男:);scanf(%d,&mi.sex); printf(年龄:);scanf(%d,&mi.age);printf(n);ret

12、urn 1;int calc(STD *m,STD *n,STD *r,float & Fage,float & Mage) int i,j=l,k=l;nO.age=rO.age=O;for( i=1;iv=m0.age;i+) if(mi.sex=O)strcpy(nj.name,mi.name);nj.sex=mi.sex; nj.age=mi.age;n0.age+; Mage+=mi.age;j+;elsestrcpy(rk.name,mi.name);rk.sex=mi.sex; rk.age=mi.age;rO.age+;Fage+=mi.age;k+;Mage=Mage/nO.age; Fage=Fage/rO.age;coutvv女生的平均年龄是:vvMagevv男生的平均年龄是:vvFagevvendl; return 1;void print(STD *m)for(int i=1;iv=m0.age;i+)printf (姓名:3s,性别(0 女 1 男):d,年龄:dn,mi.name,mi.sex,mi.age); 程序运行结果如下:WWTW总八瓶 点樹入学生倍息姓名 aaa性别0女:1_男=0-Tul= 11姓各bbbtt-L : ddd 理跆;号XtT-r- = ccc: ddd1一咗12 3 4 5 ; 1:i: 1: 121示| 龄辭龄龄龄均

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号