- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机软件技术基础》
实验报告I—数据结构
班号: 0312401 学号: 031240117
姓名:尚林伟 Email: 235445892@
签名: 尚林伟
南京航空航天大学
2014年11月5日
目录
实验一:顺序表、单链表的定义、创建、插入和删除操作,将数据元素显示出来。P1~5
实验二:二叉树的链式存储结构的数据结构定义、创建、先序/中序/后序遍历,并将结果序列输出。P5~6
实验三:图的邻接表和邻接矩阵数据结构的定义、创建;图的深度优先遍历、广度优先遍历。P6~12
实验总结:P13
第 PAGE
第 PAGE 3 页
一、实验要求
简述每一部分的对象、目的和要求;
画出算法(程序)的流程图;
说明程序的数据输入要求和输出结果的特点与结论;
附源程序清单;
实验的总结:遇到的问题以及解决的办法、方法的优缺点;忌空、大话简述每一部分。
对源程序的功能块做适当注释。其他未尽事项按写报告的一般要求进行。
报告统一采用A4纸正反面打印(正文采用5号字体,单倍行距)或手写,左侧装订。
每人独立完成实验,如发现实验程序或报告的内容雷同,雷同双方(或多方)报告视为无效。
实验报告格式如附件提供的模板,提交的文档格式应严格按规定的模板格式(文字水印格式为“DS2014_学号_姓名”,如“DS2014_0312yyyxx_张三”)。
二、实验内容
实验一:顺序表、单链表的定义、创建、插入和删除操作,将数据元素显示出来。
题目分析:此题考查的是线性结构中的顺序表和单链表的基本操作。首先说顺序表,是用内存中地址连续的一块存储空间存放线性表,而内存中地址空间本就是连续的,因此在定义了顺序表以后,只需申请一个指向首地址的指针即可,要想进行添加或删除只需移动指针所指位置找到需要修改的位置即可。
而对于单链表,由于其在内存中位置不连续,而由指针与数据构成一个结点,依次串联,因此修改操作中头指针发挥了巨大用处。此题目在书中就有完整的参考程序代码,可以参照书上的代码进行编程。
程序思路:
顺序表:首先定义顺序表,接着调用顺序表初始化函数SeqList *init_SeqList()申请一个长度为new SeqList[sizeof(SeqList)]的空间,接下来调用顺序表创建函数esta_SeqList(SeqList*L)来进行对顺序表的创建,此函数要求用户输入数组,以-1为结束标志,接下来要求用户进行插入操作,当表满以及插入位置错误时都有提示,接下来就是删除,程序最后会把顺序表的元素用for循环输出出来
其中比较重要的插入和删除函数流程图如下:(使用流程图绘图软件绘制)
单链表:首先依然是定义一个单链表,接着调用CREATE_SL(SLNODE *h)函数用尾插法建立单链表,使用while循环,要求用户输入数据,以-1为结束标志,接着调用前插算法Insert_LinkList(SLNODE *h,int i,int x)函数进行插入操作,此函数对错误操作都有考虑,接下来就调用Del_LinkList(SLNODE *h,int i)函数进行删除操作,对错误操作也有处理。还有一个输出函数void Print_LinkList(SLNODE *h)用for循环对单链表的数据进行输出。
其中比较重要的插入函数流程图如下:(使用流程图绘图软件绘制)
操作演示:
顺序表***************************
即将为您建立一个顺序表,请以-1结尾
请您输入一个整数
1
请您输入一个整数
2
请您输入一个整数
4
请您输入一个整数
-1
恭喜你,创建顺序表成功^_^
输入需插入的数据:
3
输入需插入的结点:
3
插入成功^-^
1 2 3 4 输入需删除的结点
1
删除成功^-^
顺序表元素为:
2 3 4
单链表*******************************
欢迎使用单链表程序,感谢伟大的尚林伟同学给你带来了方便
请输入一组数,以-1为结尾
1
2
4
-1
单链表创建成功^-^
输入需插入的数据:
3
输入需插入的结点:
3
插入成功^-^
链表h数据如下
1 2 3 4
输入需删除的结点
4
删除成功^-^
链表h数据如下
1 2 3
源程序代码:
顺序表*******************************
//031240117尚林伟
#includeiostream.h
#define SeqList struct listtype
#define MaxSize 1000
SeqList
文档评论(0)