欢迎来到天天文库
浏览记录
ID:59516330
大小:56.45 KB
页数:9页
时间:2020-11-05
《顺序表的应用-数据结构实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、大学数据结构实验报告课程名称数据结构实验第(三)次实验实验名称顺序表的应用学生姓名于歌专业班级学号实验成绩指导老师(签名)日期2018年9月30日一、实验目的1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。3.掌握对多函数程序的输入、编辑、调试和运行过程。二、实验要求1.预习C语言中结构体的定义与基本操作方法。2.对顺序表的每个基本操作用单独的函数实现。3.编写完整程序完成下面的实验内容并上机运行。4.整理并上交实验报告。三、实验内容:1.定义一个包含学生信息(学号,姓名,成
2、绩)的顺序表,使其具有如下功能:(1)根据指定学生个数,逐个输入学生信息(2)逐个显示学生表中所有学生的相关信息(3)根据姓名进行查找,返回此学生的学号和成绩(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩)(5)给定一个学生信息,插入到表中指定的位置(6)删除指定位置的学生记录(7)统计表中学生个数四、实验设计1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能:(1)根据指定学生个数,逐个输入学生信息for(count=0;count3、tusInput(SqList*L,ElemTypee){if(!(*L).elem)returnERROR;(*L).elem[(*L).length++]=e;returnOK;}(2)逐个显示学生表中所有学生的相关信息StatusPrint(SqListL){printf("学号姓名成绩");intcount;for(count=0;count4、",e.no);printf("%20s5、",e.name);printf("%8d6、",e.score);}(3)根据姓名进行查找,返回此学生的学号和成绩StatusLocateElem(SqListL,ElemTypee){intcount;for(count=0;count7、LocateNum(SqListL,inti){if(i<18、9、i>L.length+1)returnOVERFLOW;printf("学号姓名成绩");Pri(L.elem[i-1]);returnOK;}(5)给定一个学生信息,插入到表中指定的位置StatusListInsert(SqList*L,inti,ElemTypee){intcount;if(i<110、11、i>(*L).length+1)returnOVERFLOW;if((*L).length==(*L).MaxSize)(*L).elem=(ElemType*)realloc((*L).elem,sizeof(ElemTyp12、e)*((*L).MaxSize+LISTINCREMENT));if(!(*L).elem)exit(OVERFLOW);for(count=(*L).length-1;count>=i-1;count--)(*L).elem[count+1]=(*L).elem[count];(*L).elem[i-1]=e;(*L).length++;returnOK;}(6)删除指定位置的学生记录StatusListDelete(SqList*L,inti){intcount;if(i<113、14、i>(*L).length+1)returnOVERFLOW;for(count=i;count<(*L).l15、ength;count++)(*L).elem[count-1]=(*L).elem[count];(*L).length--;returnOK;}(7)统计表中学生个数printf("表中学生的个数为:%d",L.length);(8)主函数intmain(){SqListL;ElemTypee;inti,count,n,number;InitList(&L);printf("请输入学生的个
3、tusInput(SqList*L,ElemTypee){if(!(*L).elem)returnERROR;(*L).elem[(*L).length++]=e;returnOK;}(2)逐个显示学生表中所有学生的相关信息StatusPrint(SqListL){printf("学号姓名成绩");intcount;for(count=0;count4、",e.no);printf("%20s5、",e.name);printf("%8d6、",e.score);}(3)根据姓名进行查找,返回此学生的学号和成绩StatusLocateElem(SqListL,ElemTypee){intcount;for(count=0;count7、LocateNum(SqListL,inti){if(i<18、9、i>L.length+1)returnOVERFLOW;printf("学号姓名成绩");Pri(L.elem[i-1]);returnOK;}(5)给定一个学生信息,插入到表中指定的位置StatusListInsert(SqList*L,inti,ElemTypee){intcount;if(i<110、11、i>(*L).length+1)returnOVERFLOW;if((*L).length==(*L).MaxSize)(*L).elem=(ElemType*)realloc((*L).elem,sizeof(ElemTyp12、e)*((*L).MaxSize+LISTINCREMENT));if(!(*L).elem)exit(OVERFLOW);for(count=(*L).length-1;count>=i-1;count--)(*L).elem[count+1]=(*L).elem[count];(*L).elem[i-1]=e;(*L).length++;returnOK;}(6)删除指定位置的学生记录StatusListDelete(SqList*L,inti){intcount;if(i<113、14、i>(*L).length+1)returnOVERFLOW;for(count=i;count<(*L).l15、ength;count++)(*L).elem[count-1]=(*L).elem[count];(*L).length--;returnOK;}(7)统计表中学生个数printf("表中学生的个数为:%d",L.length);(8)主函数intmain(){SqListL;ElemTypee;inti,count,n,number;InitList(&L);printf("请输入学生的个
4、",e.no);printf("%20s
5、",e.name);printf("%8d
6、",e.score);}(3)根据姓名进行查找,返回此学生的学号和成绩StatusLocateElem(SqListL,ElemTypee){intcount;for(count=0;count7、LocateNum(SqListL,inti){if(i<18、9、i>L.length+1)returnOVERFLOW;printf("学号姓名成绩");Pri(L.elem[i-1]);returnOK;}(5)给定一个学生信息,插入到表中指定的位置StatusListInsert(SqList*L,inti,ElemTypee){intcount;if(i<110、11、i>(*L).length+1)returnOVERFLOW;if((*L).length==(*L).MaxSize)(*L).elem=(ElemType*)realloc((*L).elem,sizeof(ElemTyp12、e)*((*L).MaxSize+LISTINCREMENT));if(!(*L).elem)exit(OVERFLOW);for(count=(*L).length-1;count>=i-1;count--)(*L).elem[count+1]=(*L).elem[count];(*L).elem[i-1]=e;(*L).length++;returnOK;}(6)删除指定位置的学生记录StatusListDelete(SqList*L,inti){intcount;if(i<113、14、i>(*L).length+1)returnOVERFLOW;for(count=i;count<(*L).l15、ength;count++)(*L).elem[count-1]=(*L).elem[count];(*L).length--;returnOK;}(7)统计表中学生个数printf("表中学生的个数为:%d",L.length);(8)主函数intmain(){SqListL;ElemTypee;inti,count,n,number;InitList(&L);printf("请输入学生的个
7、LocateNum(SqListL,inti){if(i<1
8、
9、i>L.length+1)returnOVERFLOW;printf("学号姓名成绩");Pri(L.elem[i-1]);returnOK;}(5)给定一个学生信息,插入到表中指定的位置StatusListInsert(SqList*L,inti,ElemTypee){intcount;if(i<1
10、
11、i>(*L).length+1)returnOVERFLOW;if((*L).length==(*L).MaxSize)(*L).elem=(ElemType*)realloc((*L).elem,sizeof(ElemTyp
12、e)*((*L).MaxSize+LISTINCREMENT));if(!(*L).elem)exit(OVERFLOW);for(count=(*L).length-1;count>=i-1;count--)(*L).elem[count+1]=(*L).elem[count];(*L).elem[i-1]=e;(*L).length++;returnOK;}(6)删除指定位置的学生记录StatusListDelete(SqList*L,inti){intcount;if(i<1
13、
14、i>(*L).length+1)returnOVERFLOW;for(count=i;count<(*L).l
15、ength;count++)(*L).elem[count-1]=(*L).elem[count];(*L).length--;returnOK;}(7)统计表中学生个数printf("表中学生的个数为:%d",L.length);(8)主函数intmain(){SqListL;ElemTypee;inti,count,n,number;InitList(&L);printf("请输入学生的个
此文档下载收益归作者所有