1、班级: 姓名: 学号: 实验一 线性表得基本操作一、 实验目得1、掌握线性表得定义;2、掌握线性表得基本操作,如建立、查找、插入与删除等。二、 实验内容定义一个包含学生信息(学号,姓名,成绩)得顺序表与链表(二选一),使其具有如下功能:() 根据指定学生个数,逐个输入学生信息;(2) 逐个显示学生表中所有学生得相关信息;(3) 根据姓名进行查找,返回此学生得学号与成绩;(4) 根据指定得位置可返回相应得学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定得位置; (6) 删除指定位置得学生记录;(7) 统计表中学生个数.三、 实验环境Vs C+四、 程序分析与实验结果nlu
2、etdo、hinclmalloc、hicudesdlib、h#ncludestri、defie OKdenEROR 0dfie VERFLOW pdef int Satus;/ 定义函数返回值类型 ydef strutchar num10;/ 学号char name20;/ 姓名doule grd; /成绩 student;typedeftudent ElemType;tyedef ruct LNodelemTypdaa; 数据域strutLNode t;/指针域oe,*nList;Stas InitLis(LinLis&L) /构造空链表 L L(struc LNo)malloc(sizeo
3、f(sruct Noe);L-nex=NUL;eurnOK;StatusGeElm(Liks L, ,Eemye e) /访问链表,找到i位置得数据域,返回给 e LinkList ;p=Lnex;it =1;whie(p&jnext;+;f(!p|i)reur ERRO;e=pdat;etrn OK;Staus erch(Node L,ar tr,Linkst&p)/根据名字查找 =、ext; whle(p)if(strcmp(pta、am,s)=0)eurnOK;p=p-nex;returRROR;Stas istInsert(LLst L,in ,ElemType) / 在 i个位置插入
4、某个学生得信息Linitp,s;p=L;it j=;whle(&i)p=-nex;+j;if(!|j-1)return ERRO;s(stru LNoe*)malloc(size(LNod);-data=e;s-nex=p-nex;pnexts;rtrn OK;SatsListDelete(LnkLst ,nt)/ 删除i位置得学生信息 int j=0;whil(pext)&(ji1))=pnex;+j;f(!(pnext)|(ji1)etrn ERROR;LinLit q;q=next;pnex=net; eee q;turn K;voi put(Emye *e)prit(”姓名:);can
5、f(%s”,enm);rif(”学号:”);cn(s”,num);printf(”成绩:);scanf(lf,egrde);pritf(”输入完成n”);vod Outu(ElemType e)rint(姓名:-20s学号:%10n成绩:10、2lnn,en,enum,-grade);int min()LNode ;ikit p;EemTe ,b,,d;print(n*nn);pt(、 构造链表); puts(、 录入学生信息”);uts(3、 显示学生信息);puts(4、输入姓名,查找该学生);put(”、 显示某位置该学生信息); pts(6、 在指定位置插入学生信息”);ps(7、在指
6、定位置删除学生信息”);u(、 统计学生个数);puts(0、 退出);prntf(n*nn);int x,chooe=-1;whie(chos!=0)ps(请选择:);scanf(%d,&hose);itch(choos)cse 1:if(nitLit())rntf(成功建立链表nn”);lsepitf(”链表建立失败nn);re;cae 2:printf(”请输入要录入学生信息得人数:);snf(”%”,);fr(in i1;i=x;+)rntf(第d个学生:”,);Inu(&a);tInset(L,i,a);break;case3:for(it =;x;i+)lem(,i,b);Otpt
7、(&b);brea;case :car s20;prif(”请输入要查找得学生姓名:);cn(%s,s);if(Search(L,s,))Oupu(&(data));esps(对不起,查无此人”);puts(”);brea;cas 5:pntf(请输入要查询得位置:);intid1;scn(%d,id);GetElem(L,id1,);utpu(&c);reak;case 6:printf (请输入要插入得位置:);int 2;an(d,i2);printf(请输入学生信息:);Iput(&d);if(istIst(L,id2,d))x+;puts(插入成功”);ts(”);eseputs(插
8、入失败”);puts(”);brak;cse7:printf(请输入要删除得位置:);ntid3;can(d”,id3);if(tDelet(&L,i3))x-;pus(删除成功);ts(”);esu(”删除失败);ut();reak;cs 8:prn(”已录入得学生个数为:%dn”,x);bea;pitf(n谢谢您得使用,请按任意键退出nnn);system(”puse); retn;用户界面:(1) 根据指定学生个数,逐个输入学生信息:(2) 逐个显示学生表中所有学生得相关信息:(3) 根据姓名进行查找,返回此学生得学号与成绩:(4) 根据指定得位置可返回相应得学生信息(学号,姓名,成绩)
9、:(5) 给定一个学生信息,插入到表中指定得位置:(6) 删除指定位置得学生记录:(7) 统计表中学生个数:五、 实验总结数据结构就是一门专业技术基础课。它要求学会分析研究计算机加工得数据结构得特性,以便为应用涉及得数据选择适当得逻辑结构,存储结构及相应得算法,并初步掌握算法得时间分析与空间分析技术。不仅要考虑具体实现哪些功能,同时还要考虑如何布局,这次得实验题目就是根据我们得课本学习进程出得,说实话,我并没有真正得读懂书本得知识,所以刚开始得时候,感到很棘手,于就是又重新细读课本,这一方面又加强了对书本得理解,在这上面花费了一些心血,觉得它并不简单,就是需要花大量时间来编写得。在本次实验中,在程序构思及设计方面有了较大得锻炼,能力得到了一定得提高。