- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验指导书[国教]
南昌工程学院
《数据结构》实验指导书
10计算机应用技术(中韩)(专)
徐晨光编
2012 年 2月
目 录
实验一:C语言相关知识复习实验………………………………………………3
实验二:线性表实验……………………………………………………………4
实验三:栈和队列实验…………………………………………………………6
实验四:数组、串………………………………………………………………8
实验五:二叉树实验……………………………………………………………9
实验六:图………………………………………………………………………12
实验七:查找实验………………………………………………………………13
实验八:排序……………………………………………………………………14
实验一 C语言相关知识复习实验
一、实验目的
C语言的函数参数传递、指针和结构体等知识点,加强学习数据结构语言基础。
二、实验内容
1.学生信息的显示,具体要求如下:
1)定义一个结构体描述学生信息(学号,姓名,性别,年龄,住址);
2)设计一个函数,用于显示单个学生信息,函数的参数为前面定义的结构体类型;
3)设计一个主函数,在主函数中输入学生的信息,并调用前面定义的函数进行显示(学生人数不少于5人)。?2. 输入若干个整数作为数组元素值,然后按输入时顺序的就地逆置,逆置要求用指针和动态内存分配方法实现。如?输入:10? ?2? ?30? ?4? ?5,逆置后显示为:5?? 4?? 30???2?? 10…….,a(n-1),将第i个元素与第n-i-1个元素调换位置即可。
2.采用动态内存分配方法可参考如下代码
???int *a;????????? int i;????????? a=(int *)malloc(N*sizeof(int));//动态分配起始地址????????? for(i=0;iN;i++)???????????? { scanf(%d,a[i]);}?//给内存空间赋值
三、实验源代码
此处写程序源代码,请在程序中适当注释,便于老师更快地看懂你的程序。
四、实验结果
此处写出程序运行的结果,即输入数据是什么,输出数据是什么,分析结果是否正确,如果不正确是什么原因。
实验二 线性表实验
一、实验目的
1、掌握建立顺序表的基本方法。
2、理解和掌握顺序表元素查找算法。
3、掌握顺序表的插入、删除算法的思想和实现。
二、实验内容
1、 建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来
2、编写查找函数,在上面的顺序表中查找其中一个元素,如果找到,返回该元素在顺序表中的位置和该元素的值,否则提示无此元素。要求被查找元素从键盘输入。
3、编写插入和删除函数,由用户输入待插入元素及插入位置,将完成插入后的顺序表输出;由用户输入删除第几个元素,将完成删除后的顺序表输出。
?以下是程序部分代码,请调试并补充使之正确运行:
#includestdio.h
#includestdlib.h
#define MAXSIZE 10
typedef struct{
int *elem;
int length;
}SqList;
main()
{int i,x,y;
int LocateElem_Sq(SqList L,int e);
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;iST.length;i++)
printf(%d ,ST.elem[i]);
}
int LocateElem_Sq(SqList L,int e)
{int i,*p;
i=1;
p=L.elem;
while(i=L.length *p++!=e) ++i;
if(i=L.length)return i;
else return 0;
}
?
int ListInsert_Sq(SqList *L,int i,int e)
{int j;
for(j=L-l
文档评论(0)