C语言数据结构实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

江西科技师范学院实验报告课程:数据结构系别:数计学院班级:09计算机(1)班学号:张抗姓名:20091592报告规格一实验目的二实验原理三实验设备四实验内容五实验代码六实验结果里面所有的实验的代码都在VC++上调试通过,可以直接复制运行。我的QQ是:691386092。有其它问题的或者想要实验的代码的可以联系我。1.实验一:C语言编程2.实验二:顺序存储3.实验三:链式存储4.实验四:模式匹配算法运用5.实验五:特殊矩阵6.实验六:内排序7.实验七:内排序8.实验八:图的遍历9.实验九:检索10.11.12.13.14.15.目录每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。实验时必须遵守实验规则。用正确的理论指导实践必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏设备。这是一份重要的不可多得的自我学习资料,它将记录着你在大学生涯中的学习和学习成果。请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。它将推动你在人生奋斗的道路上永往直前!江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第3页实验一C语言编程实验名称:实验一C语言编程实验目的:复习C语言程序设计,回顾C语言结构数据及指针数据的应用。实验原理:C语言结构化程序设计思想,结构数据类型,指针数据类型。实验设备:电脑,TURBOC2.0/WIN-TC/VISUALC++实验内容:求两个复数相加之和。实验代码:#includestdio.hstructcomp//定义复数的类型结构{floatx;floaty;};structcompa,b,sum,jian1,mul1;intz;voidmain(){voidcreat(structcomp*c);//声明所用到的函数voidoutput(structcompa);structcompadd(structcompk,structcomph);structcompjian(structcompk,structcomph);structcompmul(structcompk,structcomph);creat(&a);output(a);creat(&b);output(a);sum=add(a,b);printf(sum=);output(sum);jian1=jian(a,b);printf(jian=);江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第4页output(jian1);mul1=mul(a,b);printf(mul=);output(mul1);getch();}voidcreat(structcomp*c)//输入{floatc1,c2;printf(pleaseentertherecord:);scanf(%f,&c1);printf(pleaseentertheimage:);scanf(%f,&c2);c-x=c1;c-y=c2;}voidoutput(structcompa)//输出{printf(%f+%fi\n\n,a.x,a.y);}structcompadd(structcompk,structcomph)//相加{structcompc;c.x=k.x+h.x;c.y=k.y+h.y;return(c);}structcompjian(structcompk,structcomph)//相减{structcompc;c.x=k.x-h.x;c.y=k.y-h.y;return(c);}structcompmul(structcompk,structcomph)//相乘江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第5页{structcompc;c.x=k.x*h.x-k.y*h.y;c.y=h.x*k.y+k.x*h.y;return(c);}实验结果:实验心得:计算机事实上只能完成较简单的运算,不能完成较复杂的运算。但人们往往根据一些基本的法则和定理,通过转化,可以通过这些基本的加减乘除运算完成复杂的科学计算。这就像本实验,通过简单的加法和乘法对复数的实部和虚部分别计算,然后用特殊的方法将结果表示出来,完成了两个复数的各种运算。使会用者感觉就好像是直接进行了复数的运算。江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第6页实验二顺序存储实验名称:实验二顺序存储实验目的:掌握线性表顺序存储结构的描述,学会针对顺序存储线性表的基本操作。实验原理:C语言结构化程序设计思想,结构体及数组的应用。实验设备:电脑,TURBOC2.0/WIN-TC/VISUALC++实验内容:线性表的顺序存储表示及基本操作。实验代码:#includestdio.h#includestdlib.h#defineMAXSIZE20typedefintElemType;//定义所需的类型typedefstruct{ElemTypea[MAXSIZE];intlength;}SqList;SqLista,b,c;//定义所需的类型并声明所用到的函数voidcreat_list(SqList*L);voidout_list(SqListL);voidinsert_sq(SqList*L,inti,ElemTypee);ElemTypedelete_sq(SqList*L,inti);intlocat_sq(SqListL,ElemTypee);voidmain(){inti,k,loc;ElemTypee,x;charch;//供用户选择所需的操作do{printf(*********************主菜单*********************);printf(\n1.createlist);printf(\n2.inserteattheipositionelement);江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第7页printf(\n3.deleteipositionelementandreturnit);printf(\n4.findtheelementandreturnit);printf(\n5.endtheprogram);printf(\n请输入您的选择(以输入5表结束:));scanf(%d,&k);switch(k){case1:{creat_list(&a);out_list(a);}break;case2:{printf(\ni,e=?);scanf(%d,%d,&i,&e);insert_sq(&a,i,e);out_list(a);}break;case3:{printf(\npleaseenterthei:);scanf(%d,&i);x=delete_sq(&a,i);out_list(a);}break;case4:{printf(\ne=?);scanf(%d,&e);loc=locat_sq(a,e);if(loc==-1)printf(\nnotfind%d,loc);elseprintf(havefound,positionat%d,loc);}break;}printf(\n************************************************\n\n\n);}while(k!=5);printf(\nGoodBye!!);printf(\nentertheenter,return\n);ch=getchar();}voidcreat_list(SqList*L)//生成顺序表{inti;printf(\npleaseenterthelength:n=);江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第8页scanf(%d,&(L-length));for(i=1;i=L-length;i++){printf(data%d=,i);scanf(%d,&L-a[i]);}}voidout_list(SqListL)//输出所生成的顺序表{inti;for(i=1;i=L.length;i++)printf(%6d,L.a[i]);}voidinsert_sq(SqList*L,inti,ElemTypee)//在i位置,插入元素e{intj;if(L-length==MAXSIZE)printf(\nERROR!!!overflow!);elseif(i1||iL-length)printf(\nerrori);elsefor(j=L-length;j=i;j--)L-a[j+1]=L-a[j];L-a[i]=e;L-length++;}ElemTypedelete_sq(SqList*L,inti)//删除第i个元素,并返回它的值{ElemTypex;intj;if(L-length==0)printf(\nERROR!!!thelistisempty!);elseif(iL-length)printf(\nERROR!!!overflow!);elsefor(j=i;j=L-length;j++)L-a[j]=L-a[j+1];L-length--;}江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第9页intlocat_sq(SqListL,ElemTypee)//查找值为e的元素,并返回它的位置{inti=1;while(i=L.length)if(i=L.length)return(i);elsereturn(-1);}实验结果:江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第10页实验心得:在做插入删除等操作时要注意先后顺序,要明确是先行动在进行插入删除等操作,还是先进行插入删除等。注意不要使元素被元素被其它元素覆盖而得不到所需的结果。要注意增加程序的重复使用性,使程序一次就能完成各种操作,尽量使程序的使用者自己选择所需的操作。要尽量完善自己的代码,经过不断的测试找出其中考虑不足的地方。江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第11页实验三链式存储实验名称:实验三链式存储实验目的:掌握线性表链式存储结构的描述,学会针对链式存储线性表的基本操作。实验原理:C语言结构化程序设计思想,结构体及指针的应用。实验设备:电脑,TURBOC2.0/WIN-TC/VISUALC++实验内容:线性表的链式存储表示及基本操作。实验代码:#includestdio.h#includestdlib.h#defineNULL0typedefintDataType;typedefstructLNode/*定义结点*/{DataTypedata;structLNode*next;}LNode,*LinkList;LinkListL;LinkListcreat_List();/*声明所用到的函数*/voidout_List(LinkListL);voidinsert_List(LinkListL,inti,DataTypee);DataTypedelete_LinkList(LinkListL,inti);intlocat_LinkList(LinkListL,DataTypee);voidmain(){inti,k,loc;DataTypee,x;charch;do{printf(*********************主菜单*********************);printf(\n1.建立线性链表);江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:黄玲芳第12页printf(\n2.在i位置插入元素e);printf(\n3.删除第i个元素,返回其值);printf(\n4.查找值为e的元素);printf(\n5.结束程

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功