数据结构与算法实验报告实验名称:数据结构基础实验地点:实验日期:指导教师:学生班级:学生姓名:学生学号:提交日期:2009年12月计算机科学与技术系1目录实验一学生成绩分析程序............................................41.1上机实验的问题和要求(需求分析):.....................................41.2程序设计的基本思想,原理和算法描述:..................................41.3调试和运行程序过程中产生的问题及采取的措施:...........................41.4运行输出结果:.........................................................41.5源程序及注释:........................................................5实验二线性表的基本操作............................................82.1上机实验的问题和要求(需求分析):......................................82.2程序设计的基本思想,原理和算法描述:..................................82.3调试和运行程序过程中产生的问题及采取的措施:...........................82.4运行输出结果:.........................................................82.5源程序及注释:........................................................8实验三链表的基本操作..............................................113.1上机实验的问题和要求(需求分析):.....................................113.2程序设计的基本思想,原理和算法描述:.................................113.3调试和运行程序过程中产生的问题及采取的措施:..........................113.4运行输出结果:........................................................113.5源程序及注释:.......................................................11实验四单链表综合实验.........................................144.1上机实验的问题和要求(需求分析):....................................144.2程序设计的基本思想,原理和算法描述:................................144.3调试和运行程序过程中产生的问题及采取的措施:.........................144.4运行输出结果:.......................................................1424.5源程序及注释:.....................................................14实验五串.........................................................195.1上机实验的问题和要求(需求分析):...................................195.2程序设计的基本思想,原理和算法描述:...............................195.3调试和运行程序过程中产生的问题及采取的措施:........................195.4运行输出结果:......................................................195.5源程序及注释:.....................................................21实验六循环队列的实现与运算.................................226.1上机实验的问题和要求(需求分析):...................................226.2程序设计的基本思想,原理和算法描述:...............................226.3调试和运行程序过程中产生的问题及采取的措施:........................226.4运行输出结果:......................................................226.5源程序及注释:.....................................................23实验七栈子系统..................................................267.1上机实验的问题和要求(需求分析):...................................267.2程序设计的基本思想,原理和算法描述:...............................267.3调试和运行程序过程中产生的问题及采取的措施:........................267.4运行输出结果:......................................................267.5源程序及注释:.....................................................28实验八树...........................................................368.1上机实验的问题和要求(需求分析):..................................368.2程序设计的基本思想,原理和算法描述:..............................398.3调试和运行程序过程中产生的问题及采取的措施:.......................398.4运行输出结果:.....................................................3938.5源程序及注释:.....................................................41实验九建立哈夫曼树与哈夫曼树与码...........................509.1上机实验的问题和要求(需求分析):..................................509.2程序设计的基本思想,原理和算法描述:..............................509.3调试和运行程序过程中产生的问题及采取的措施:.......................509.4运行输出结果:.....................................................509.5源程序及注释:....................................................50实验十图…………………………….............................5310.1上机实验的问题和要求(需求分析):.................................5310.2程序设计的基本思想,原理和算法描述:.............................5310.3调试和运行程序过程中产生的问题及采取的措施:......................5310.4运行输出结果:....................................................5310.5源程序及注释:...................................................534实验一学生成绩分析程序一、上机实验的问题和要求(需求分析):【题目】设一个班有10个学生,每个学生有学号,以及数学、物理、英语、语文、体育5门课的成绩信息。分别编写3个函数以实现以下3个要求:(1)求数学的平均成绩。(2)对于有两门以上课程不及格的学生,输出他们的学号、各门课成绩及平均成绩。(3)输出成绩优良的学生(平均成绩在85分以上或全部成绩都在80分以上)的学号、各门课成绩和平均成绩。二、程序设计的基本思想,原理和算法描述:【算法描述】(1)用数组id[3],name[10],score[5]来记录是个学生的各门课程的成绩.将数学科目的成绩相加再求出平均成绩。(2)取一个未知数A来求学生的不及格数,a=2时输出学生的名字学号和成绩。(3)求出所有的成绩的平均分并输出各门成绩和平均成绩。三、调试和运行程序过程中产生的问题及采取的措施:基本上是输入时的细节如大括号的位置等。四、运行输出结果5五、源程序及注释:输入学生的学号姓名和成绩:#includestdio.hstructSTUDENT{charid[3];charname[10];intscore[5];doubleave;}stu[10];voidmain(){intnum=10,i,j,all=0;;for(i=0;inum;i++){printf(\t请输入第%d学生的数据:,i+1);printf(\t学号:);scanf(%S,stu[i].id);printf(\t姓名:);scanf(%s,stu[i].name);j=0;printf(\t语文课的成绩);scanf(%d,&stu[i].score[j]);j++;printf(\t数学课的成绩);scanf(%d,&stu[i].score[j]);j++;printf(\t物理课的成绩);scanf(%d,&stu[i].score[j]);j++;printf(\t英语课的成绩);scanf(%d,&stu[i].score[j]);j++;printf(\t体育课的成绩);scanf(%d,&stu[i].score[j]);}pj();bjg();yx();}输出数学平均成绩:voidpj(stu[10]){6inta,b,i;for(i=0;i10;i++);{a=a+stu[i].score[2];}b=a/10;printf(\ttheeveragescoreis:%d,b);}求出不及格人数:voidbjg(){inti,j=0,c=0;for(i=0;i10;i++);{for(j=0;j5;i++);{if(stu[i].score[j]60){c=c++;}}if(c=2);printf(两门课以上不及格的同学:);printf(%d\t%d\t%d\t%d\t,stu[i].id,stu[i].name,stu[i].score);}}输出优秀学生:voidyx(){inti,j=0,c=0;for(i=0;i10;i++);{for(j=0;j5;i++);{if(stu[i].score[j]=80){c=c++;}}if(c==5);printf(优秀学生为:);printf(%d\t%d\t%d\t%d\t,stu[i].id,stu[i].name,stu[i].score);}}7实验二线性表的基本操作一、上机实