如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
南昌工程学院《数据结构》实验指导书10计算机应用技术(中韩)(专)徐晨光编2012年2月目录实验一:C语言相关知识复习实验………………………………………………3实验二:线性表实验……………………………………………………………4实验三:栈和队列实验…………………………………………………………6实验四:数组、串………………………………………………………………8实验五:二叉树实验……………………………………………………………9实验六:图………………………………………………………………………12实验七:查找实验………………………………………………………………13实验八:排序……………………………………………………………………14实验一C语言相关知识复习实验一、实验目的巩固复习前期所学C语言的函数参数传递、指针和结构体等知识点,加强学习数据结构语言基础。二、实验内容1.学生信息的显示,具体要求如下:1)定义一个结构体描述学生信息(学号,姓名,性别,年龄,住址);2)设计一个函数,用于显示单个学生信息,函数的参数为前面定义的结构体类型;3)设计一个主函数,在主函数中输入学生的信息,并调用前面定义的函数进行显示(学生人数不少于5人)。提示:可用结构体数组保存学生信息。2.输入若干个整数作为数组元素值,然后按输入时顺序的就地逆置排序,最后打印出逆置后的元素值。要求用指针和动态内存分配方法实现。例如输入:1023045,逆置后显示为:5430210。提示:1.逆置的方法:设有n个数据元素a(0),a(1),a(2)…….,a(n-1),将第i个元素与第n-i-1个元素调换位置即可。2.采用动态内存分配方法可参考如下代码int*a;inti;a=(int*)malloc(N*sizeof(int));//动态分配起始地址for(i=0;i<N;i++){scanf("%d",&a[i]);}//给内存空间赋值三、实验源代码此处写程序源代码,请在程序中适当注释,便于老师更快地看懂你的程序。四、实验结果此处写出程序运行的结果,即输入数据是什么,输出数据是什么,分析结果是否正确,如果不正确是什么原因。实验二线性表实验一、实验目的1、掌握建立顺序表的基本方法。2、理解和掌握顺序表元素查找算法。3、掌握顺序表的插入、删除算法的思想和实现。二、实验内容1、建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来2、编写查找函数,在上面的顺序表中查找其中一个元素,如果找到,返回该元素在顺序表中的位置和该元素的值,否则提示无此元素。要求被查找元素从键盘输入。3、编写插入和删除函数,由用户输入待插入元素及插入位置,将完成插入后的顺序表输出;由用户输入删除第几个元素,将完成删除后的顺序表输出。以下是程序部分代码,请调试并补充使之正确运行:#include<stdio.h>#include<stdlib.h>#defineMAXSIZE10typedefstruct{int*elem;intlength;}SqList;main(){inti,x,y;intLocateElem_Sq(SqListL,inte);printf("请输入顺序表的长度");scanf("%d",&ST.length);ST.elem=(int*)malloc(sizeof(int)*ST.length);for(i=0;i<=ST.length-1;i++){ST.elem[i]=rand()%100;printf("%d",ST.elem[i]);}printf("请输入你要查找的数");scanf("%d",&x);y=LocateElem_Sq(x);printf("%d",y);printf("请输入你要插入的位置及元素值");scanf("%d,%d",&i,&x);y=ListInsert_Sq(&ST,i,x);for(i=0;i<ST.length;i++)printf("%d",ST.elem[i]);}intLocateElem_Sq(SqListL,inte){inti,*p;i=1;p=L.elem;while(i<=L.length&&*p++!=e)++i;if(i<=L.length)returni;elsereturn0;}intListInsert_Sq(SqList*L,inti,inte){intj;for(j=L->length;j>=i;j--)L->elem[j+1]=L->elem[j];L-