《数据结构》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
苏州科技学院
数据结构(C语言版)
实验报告
专业班级测绘1011
学号10201151
姓名XX
实习地点C1 机房
指导教师史守正
目录
封面 (1)
目录 (2)
实验一线性表 (3)
一、程序设计的基本思想,原理和算法描述 (3)
二、源程序及注释(打包上传) (3)
三、运行输出结果 (4)
四、调试和运行程序过程中产生的问题及采取的措施 (6)
五、对算法的程序的讨论、分析,改进设想,其它经验教训 (6)
实验二栈和队列 (7)
一、程序设计的基本思想,原理和算法描述 (8)
二、源程序及注释(打包上传) (8)
三、运行输出结果 (8)
四、调试和运行程序过程中产生的问题及采取的措施 (10)
五、对算法的程序的讨论、分析,改进设想,其它经验教训 (10)
实验三树和二叉树 (11)
一、程序设计的基本思想,原理和算法描述 (11)
二、源程序及注释(打包上传) (12)
三、运行输出结果 (12)
四、调试和运行程序过程中产生的问题及采取的措施 (12)
五、对算法的程序的讨论、分析,改进设想,其它经验教训 (12)
实验四图 (13)
一、程序设计的基本思想,原理和算法描述 (13)
二、源程序及注释(打包上传) (14)
三、运行输出结果 (14)
四、调试和运行程序过程中产生的问题及采取的措施 (15)
五、对算法的程序的讨论、分析,改进设想,其它经验教训 (16)
实验五查找 (17)
一、程序设计的基本思想,原理和算法描述 (17)
二、源程序及注释(打包上传) (18)
三、运行输出结果 (18)
四、调试和运行程序过程中产生的问题及采取的措施 (19)
五、对算法的程序的讨论、分析,改进设想,其它经验教训 (19)
实验六排序 (20)
一、程序设计的基本思想,原理和算法描述 (20)
二、源程序及注释(打包上传) (21)
三、运行输出结果 (21)
四、调试和运行程序过程中产生的问题及采取的措施 (24)
五、对算法的程序的讨论、分析,改进设想,其它经验教训 (24)
实验一线性表
一、程序设计的基本思想,原理和算法描述:
程序的主要分为自定义函数、主函数。自定义函数有InitList_Sq、Out_List、ListInsert_Sq、ListDelete_Sq、LocateElem_Sq、compare。主函数在运行中调用上述的自定义函数,每个自定义函数实现程序的每部分的小功能。
1. 程序设计基本思想
用c语言编译程序,利用顺序存储方式实现下列功能:根据键盘输入数据建立一个线性表,并输出该线性表;然后根据屏幕菜单的选择,可以进行数据的插入、删除、查找,并在插入或删除数据后,再输出线性表;最后在屏幕菜单中选择结束按钮,即可结束程序的运行。2.原理
线性表通过顺序表现,链式表示,一元多项式表示,其中链式表示又分为静态链表,双向链表,循环链表等,在不同的情况下各不相同,他可以是一个数字,也可以是一个符号,通过符号或数字来实现程序的运行。
3.算法描述
(1)输入的形式和输入值的范围:执行插入操作时,需要输入插入的位置的元素的值;执行删除操作时,需要输入待删除元素的位置;执行查找操作时,需要输入待查找元素的值。在所有输入中,元素的值都是整数。
(2)输出的形式:在所有操作中都要求显示相关操作是否正确以及操作后单链表的内容。其中删除操作完成后,要显示删除元素的值;查找操作完成后,若找到待查元素,则显示该元素在单链表中的位置。反之,给出不能找到的信息。
(3)程序功能:完成单链表的生成、插入、删除、查找操作。(4)测试数据:
①依次输入元素12,34,56,78,90,生成一个单链表。
②插入操作中在位置4上插入元素10。
③删除操作中输入5 78,删除位于5的元素78。
④查找操作中输入56,输出元素在单链表中的位置是3。
二、源程序及注释(打包上传):
三、运行输出结果:
四、调试和运行程序过程中产生的问题及采取的措施:
开始调试过程中遇到不清楚的指针函数,为此,将其改为自己熟悉的函数,实现相应的功能。
(1)通过书本的例题以及理论知识来分析错误的原因。
(2)认真复习老师上课的ppt课件,找出老师上课的主要思想,通过老师的提醒来解决问题。
(3)与同学分析与交流。
(4)向老师请教
五、对算法的程序的讨论、分析,改进设想,其它经验教训:
我们上课必须认真听讲,课后也要仔细复习老师的ppt以及上课的笔记,这样才能更加深刻地了解老师的解题思想以及考试的重点,上机课更要独立完成老师布置的作业。对于算法的程序,要充分发挥函数库的功能。对于自己不清楚的函数,可以向老师询问或者去上网查找相关的方法。
实验二栈和队列
一、程序设计的基本思想,原理和算法描述:
(包括程序的结构,数据结构,输入/输出设计,符号名说明等)程序主要由自定义函数,主函数构成。自定义函数是实现程序每个小功能的一部分,自定义函数有:Status InitStack、Status GetTop、Status Push、Status Pop、Out_Stack。
1.程序设计基本思想
编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:
2.程序设计的原理
通过了解栈和队列的特性,来掌握栈的顺序表示和实现和栈的链式表示,实现掌握队列的顺序表示以及实现掌握队列的链式表示,最后要实现掌握栈和队列在实际问题中的应用。
3.程序设计的算法描述
(1)建立栈:构造一个空栈,并插入元素
(2)入栈,插入元素
(3)出栈,删除栈顶元素
(4)取栈顶元素
(5)输出显示栈内元素,从栈底到栈顶
4.测试数据
①依次输入元素12,34,56,78,90,123,456,789,生成一个栈。
②入栈操作中输入入栈元素100。
③出栈操作中输入5,删除从栈顶开始的5个的元素。
④取栈顶元素操作中,输出栈顶元素是78。
⑤依次输出从栈底到栈顶元素:12,34,56,78。