《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx

上传人:lao****ou 文档编号:848834 上传时间:2024-06-19 格式:DOCX 页数:38 大小:126.89KB
下载 相关 举报
《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx_第1页
第1页 / 共38页
《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx_第2页
第2页 / 共38页
《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx_第3页
第3页 / 共38页
《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx_第4页
第4页 / 共38页
《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx_第5页
第5页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx》由会员分享,可在线阅读,更多相关《《数据结构》(C语言版)严蔚敏著_数据结构实验指导_2.docx(38页珍藏版)》请在第一文库网上搜索。

1、数据结构实验指导及报告书/学年第一学期姓名:学号:班级:指导教师:数学与统计学院2011预备实验C语言的函数数组指针结构体知识一、实验目的1、复习C语言中函数、数组、指针、结构体与共用体等的概念。2、熟悉利用C语言进行程序设计的一般方法.二、实验预习说明以下C语言中的概念1、函数:2、数组:3、指针:4、结构体5、共用体三、实验内容和要求1、调试程序:输出IOO以内所有的素数(用函数实现)。#inc1udeintisprime(intn)/*判断一个数是否为素数*/intm;fbr(m=2;m*m=n;m+)if(n%m=0)return0;return1;)intmain()/*输出100以

2、内所有素数*/inti;printf(n);for(i=2;i100;i+)if(isprime(i)=1)printf(,%4d,i);returnO;)运行结果:2、调试程序:对一维数组中的元素进行逆序排列。#inc1ude#defineN10intmain()intaN=0,1,2,3,4,5,6,7,8,9,i,temp;printf(ntheorigina1Arrayis:n);for(i=0;iN;i+)printf(,%4d,ai);for(i=0;iN/2;i+)*交换数组元素使之逆序*/temp=ai;ai=aN-i-1;aN-i-1=temp;)printf(nthecha

3、ngedArrayis:n);for(i=0;iN;i+)printf(%4d,ai);return0;)运行结果:3、调试程序:在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍点。要求从键盘上输入一个二维数组,当鞍点存在时,把鞍点找出来。#inc1ude#defineM3#defineN4intmain()intaMN,ij,k;Printf(”n请输入二维数组的数据:nt,);for(i=0;iM;i+)for(j=0;jN;j+)scanf(,%da1ij);for(i=0;iM;i+)/*输出矩阵*/fbr(j=ONy+)printf(%4d

4、aij);printf(,n);)for(i=0;iM;i+)k=0;for(j=1;jaik)k=j;for(j=0;jM;j+)/*判断第i行的最大值是否为该列的最小值*/if(akaik)break;if(j=M)/*在第i行找到鞍点*/printf(%d,%d,%dn,aik,i,k);returnO;)运行结果:4、调试程序:利用指针输出二维数组的元素。#inc1udeintmain()inta34=1,3,5,7A11,13,15J7,19,21,23);int*p;for(p=a0;paOJ+12;p+)if(p-aO)%4=O)printf(n);printf(%4d(,*p)

5、;)return0;)运行结果:5、调试程序:设有一个教师与学生通用的表格,教师的数据有姓名、年龄、职业、教研室四项,学生有姓名、年龄、专业、班级四项,编程输入人员的数据,再以表格输出。#inc1ude#defineN10structstudentcharname8:*姓名*/intage;*年龄*/charjob;*职业或专业,用S或t表示学生或教师*/unionintc1ass;户班级*/charOffice11OJ;/*教研室*/depa;)stuN;intmain()inti;intn;printf(44n请输入人员数(10)n);SCanf(d”,&n);for(i=0;in;i+)

6、/*输入n个人员的信息Prin1f(n请输入第d人员的信息:(nameagejobc1assoffice)n,i1);scanf(,%s,%d,%c,stui.name,&stui.age,&stui.job);if(stui.job=,s,)scanf(n%d,&stui.depa.c1ass);e1sescanf(%s,stui.depa.office);)printf(nameagejobC1aSS/office);for(i=0;in;i+)*输出*/if(stui.job=,s,)printf(%s%3d%3c%dn,stui.name,stui.age,stui.job,stui.

7、depa.c1ass);e1seprintf(%s%3d%3c%sn,stui.name,stui.age,stui.job,stui.depa.office);)输入的数据:2Wang19s990611i36tcomputer运行结果:四、实验小结五、教师评语实验一顺序表与链表一、实验目的1、掌握线性表中元素的前驱、后续的概念。2、掌握顺序表与链表的建立、插入元素、删除表中某元素的算法。3、对线性表相应算法的时间复杂度进行分析。4、理解顺序表、链表数据结构的特点(优缺点)。二、实验预习说明以下概念1、线性表:2、顺序表:3、链表:三、实验内容和要求1、阅读下面程序,在横线处填写函数的基本功能

8、。并运行程序,写出结果。ttinc1ude#inc1udedefineERROR0defineOK1defineTNIT_SIZE5SdefineINCREM5typedefintE1emType;typedefstructSq1istE1emType*s1ist;int1ength;int1istsize;Sq1ist;*初始分配的顺序表长度*/*溢出时,顺序表长度的增量*/*定义表元素的类型*/*存储空间的基地址*/*顺序表的当前长度*/*当前分配的存储空间*/int1nit1ist_sq(Sq1ist*1);/*/intCreate1ist_sq(Sq1ist*1,intn);*/int

9、1ist1nsert_sq(Sq1ist*1,inti,E1emTypee);/*/intPrint1ist_sq(Sq1ist*1);*输出顺序表的元素*/int1istDe1ete_sq(Sq1ist*1,inti);/*删除第i个元素*/int1ist1ocate(Sq1ist*1,E1emTypee);/*查找值为e的元素*/int1nit1ist_sq(Sq1ist*1)1-s1ist=(E1emType*)ma1Ioc(INITSIZE*sizeof(E1emType);if(!1-s1ist)returnERROR;1-Iength=O;1-1istsize=INIT_SIZE;

10、returnOK;*Init1ist*/intCreate1ist_sq(Sq1ist*1,intn)E1emTypee;inti;for(i=0;in;i+)printf(*inputdata,i+1);scanf(%d,&e);if(!1istInsert_sq(1,i+1,e)returnERROR;)returnOK;*Create1ist*/*输出顺序表中的元素*/intPrint1istsq(Sq1ist*1)inti;for(i=1;i1ength;i+)printf(*%5d*,1-s1isti1);returnOK;*Print1ist*/int1istInsert_sq(S

11、q1ist*1,inti,E1emTypee)intk;if(i1-1ength+1)returnERROR;if(1-1ength=1-1istsize)(1-s1ist=(E1emType*)rea11oc(1-s1ist,(INIT_SIZE+INCREM)*sizeof(E1emType);if(!1-s1ist)returnERROR;1-1istsize+=INCREM;)for(k=1-1ength-1;k=i-1;k-)1-s1istk+1=1-s1istk;)1-s1isti1=e;1-1ength+;returnOK;*1istInsert*/*在顺序表中删除第i个元素*/

12、int1iStDC1ete_sq(Sq1iSt*1,inti)/*在顺序表中查找指定值元素,返回其序号*/int1ist1ocate(Sq1ist*1,E1emTypee)intmain()Sq1istsi;intn,m,k;Printf(p1easeinputn:);/*输入顺序表的元素个数*/scanf(,&n);if(n0)printf(*n1-CreateSq1iSt:rT);Init1ist_sq(&s1);Create1istsq(&s1,n);printf(z,n2-PrintSq1ist:n*);Print1ist_sq(&s1);printf(z,np1easeinputin

13、sert1ocationanddata:(1ocation,data)n*);scanf(%d,%d,&m,&k);1istInsertsqUs1,m,k);printf(z,n3-PrintSqIiSt:rT);Print1ist_sq(&s1);printf(n);)e1sePrintf(ERROR);returnO;)运行结果2、为第1题补充删除和查找功能函数,并在主函数中补充代码验证算法的正确性。删除算法代码:运行结果算法分析查找算法代码:运行结果3、阅读下面程序,在横线处填写函数的基本功能。并运行程序,写出结果。#inc1ude#inc1ude#defineERROR0#defineOK1tyedefintE1emType;*定义表元素的类型*/tyedefstruct1Node/*线性表的单链表存储*/E1emTypedata;struct1Node*next;1Node,*1ink1ist;1ink1istCreate1ist(intn);*voidPrint1ist(1ink1ist1);/*输出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服