好文供参考!1/15数据结构实验报告实用4篇【引读】这篇优秀的文档“数据结构实验报告实用4篇”由网友上传分享,供您参考学习使用,希望此文对您有所帮助,喜欢的话就分享给下载吧!数据结构实验报告范例1《数据结构与算法》实验报告专业班级姓名学号实验项目实验一二叉树的应用实验目的1、进一步掌握指针变量的含义及应用。2、掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。3、掌握用指针类型描述、访问和处理二叉树的运算。实验内容题目1:编写一个程序,采用一棵二叉树表示一个家谱关系。要求程序具有如下功能:(1)用括号表示法输出家谱二叉树,(2)查找某人的所有儿子,(3)查找某人的所有祖先。好文供参考!2/15算法设计分析(一)数据结构的定义为了能够用二叉树表示配偶、子女、兄弟三种关系,特采用以下存储关系,则能在二叉树上实现家谱的各项运算。二叉树型存储结构定义为:typedefstructSNODE{charname[MAX];//人名structSNODE*left;//指向配偶结点structSNODE*right;//指向兄弟或子女结点}FNODE;(二)总体设计实验由主函数、家谱建立函数、家谱输出函数、儿子查找函数、祖先查找函数、结点定位函数、选择界面函数七个函数共同组成。其功能描述如下:(1)主函数:统筹调用各个函数以实现相应功能voidmain()(2)家谱建立函数:与用户交互建立家族成员对应关系voidInitialFamily(FNODE*&head)//家谱建立函数(3)家谱输出函数:用括号表示法输出家谱输出形式为:父和母(子1和子妻1(孙1),子2和子妻2(孙2))voidPrintFamily(FNODE*head)//家谱输出函数好文供参考!3/15(4)儿子查找函数:在家谱中查找到某人所有的子女并输出,同时也能辨别出其是否为家族成员与是否有子女voidFindSon(FNODE*b,charp[])//儿子查找函数(5)祖先查找函数:在家谱中查找到某人所有的祖先并输出,同时也能辨别出其是否为家族中成员。intFindAncestor(FNODE*head,charson[])//祖先查找函数(6)结点定位函数:在家谱中找到用户输入人名所对应的结点。FNODE*findnode(FNODE*b,charp[])//结点定位函数(7)选择界面函数:为便于编写程序,将用户选择部分独立为此函数。voidPRINT(int&n)(三)各函数的详细设计:voidInitialFamily(FNODE*&head)//家谱建立函数1:首先建立当前人的。信息,将其左右结点置为空,2:然后让用户确定其是否有配偶,如果没有配偶,则当前程序结束,3:如果有则建立其配偶信息,并将配偶结点赋给当前人的左结点;4:再让用户确定其是否有子女,如果有则递归调用家谱好文供参考!4/15建立函数建立子女结点,并将其赋给配偶结点的下一个右结点。5:如无,则程序结束voidPrintFamily(FNODE*head)//家谱输出函数1:首先判断当前结点是否为空,如果为空则结束程序;2:如果不为空,则输出当前结点信息,3:然后判断其左结点(配偶结点)是否为空,如不为空则输出“和配偶信息。4:再判断配偶结点的右结点是否为空,如不为空则递归调用输出其子女信息,最后输出“)”;5:当配偶结点为空时,则判断其右结点(兄弟结点)是否为空6:如果不为空,则输出“,”,并递归调用输出兄弟信息7程序结束FNODE*findnode(FNODE*b,charp[])//结点定位函数1:当前结点是否为空,为空则返回空;2:如果和查找信息相同,则返回当前结点;3:如不然,则先后递归访问其左结点,再不是则递归访问右结点voidFindSon(FNODE*b,charp[])//儿子查找函数1:在家谱中定位到要查找的结点,如无则输出“查找不好文供参考!5/15到此人”2:判断其配偶结点与子女结点是否为空,为空则输出“无子女”3:不为空则输出其配偶结点的所有右结点(子女结点)。intFindAncestor(FNODE*head,charson[])//祖先查找函数1:先在家谱中定位到要查找的结点,如为空输出“不存在此人”,程序结束2:先将父母结点入栈,当栈为空时程序结束,3:栈不为空时,判断栈顶元素是否已访问过,4:访问过,再判断是否为查找结点,如是则输出栈中保存的其祖先结点,并滤过其兄弟结点不输出;不是查找结点,则退栈一个元素5:未访问过,则取当前栈顶元素,置访问标志——1,同时取其右结点6:栈不为空或当前所取结点不为空时,转到2;实验测试结果及结果分析(一)测试结果(二)结果分析(略)实验总结(略)好文供参考!6/15数据结构实验报告2怎么学好数据结构首先你要知道什么是数据结构,学习数据结构的意义。这将是你学习的动力所在。计算机软件都用到了数据结构。所以,学好数据结构对于你将来从事计算机编程类的工作有十分重要的作用。数据结构中的基本概念,你要一定清楚。平时要多看书,要在计算机上去调试程序,在调试的过程中,你才能发现自己的问题,然后及时解决。在上机调试的过程中,更要大胆尝试,注重运用。拿到一个题时,更要深入分析,尝试用不同的算法去设计。当然编程的时候,要注意格式。比如:变量一定要先定义后使用。变量的定义不要定义在中间。算法与数据结构是紧密联系,所以你算法一定要会。如果你是学生,只需把课本上出现的搞懂就好了,比如线性表的插入,删除,查找算法,它都是固定的。你就要理解,当然你要学会画图。对于书中的内容要熟悉。数据结构的大纲如下:线性表、栈和队列,串、数组和广义表、树与森林、图、还有就是查找和排序。简单的总结一下也就是它的逻辑结构:线性结构和非线性结构。这些基本的内容你如果搞懂了,你的数据结构也就学好了。要严格要求自己。在学习算法的过程中,你要想它为什么好文供参考!7/15要这样设计?它的优点在哪里?想着去改进算法,慢慢的的你的逻辑思维能力也就提高了。你会发现其实数据结构也就那么回事,不是很难。有不懂得地方要及时请教老师,不要不懂装懂。不要放过任何一个细节,因为我的专业就是计算机,所以有很多都是深有体会。注意:一、认真安排好你的时间首先你要清楚一周内所要做的事情,然后制定一张作息时间表。在表上填上那些非花不可的时间,如吃饭、睡觉、上课、娱乐等。安排这些时间之后,选定合适的、固定的时间用于学习,必须留出足够的时间来完成正常的阅读和课后作业。当然,学习不应该占据作息时间表上全部的空闲时间,总得给休息、业余爱好、娱乐留出一些时间,这一点对学习很重要。一张作息时间表也许不能解决你所有的问题,但是它能让你了解如何支配你这一周的时间,从而使你有充足的时间学习和娱乐。二、学习前先预习这就意味着在你认真投入学习之前,先把要学习的内容快速浏览一遍,了解学习的大致内容及结构,以便能及时理解和消化学习内容。当然,你要注意轻重详略,在不太重要的地方你可以花少点时间,在重要的地方,你可以稍微放慢学习进程。三、充分利用课堂时间好文供参考!8/15学习成绩好的学生很大程度上得益于在课堂上充分利用时间,这也意味着在课后少花些功夫。课堂上要及时配合老师,做好笔记来帮助自己记住老师讲授的内容,尤其重要的是要积极地独立思考,跟得上老师的思维。四、学习要有合理的规律课堂上做的笔记你要在课后及时复习,不仅要复习老师在课堂上讲授的重要内容,还要复习那些你仍感模糊的认识。如果你坚持定期复习笔记和课本,并做一些相关的习题,你定能更深刻地理解这些内容,你的记忆也会保持更久。定期复习能有效地提高你的考试成绩。五、一个安静的、舒适的学习环境选择某个地方作你的学习之处,这一点很重要。它可以是你的单间书房或教室或图书馆,但是它必须是舒适的,安静而没有干扰。当你开始学习时,你应该全神贯注于你的功课,切忌“身在曹营心在汉”。六、树立正确的考试观平时测验的目的主要看你掌握功课程度如何,所以你不要弄虚作假,而应心平气和地对待它。或许,你有一两次考试成绩不尽如人意,但是这不要紧,只要学习扎实,认真对待,下一次一定会考出好成绩来。通过测验,可让你了解下一步学习更需要用功夫的地方,更有助于你把新学的知识记得牢固。好文供参考!9/15数据结构实验报告3目前所在:天河区年龄:20户口所在:汕头国籍:中国婚姻状况:未婚民族:汉族诚信徽章:未申请身高:157cm人才测评:未测评体重:人才类型:在校学生应聘职位:幼教/保育员,家教,销售主管/销售代表/客户代表工作年限:1职称:求职类型:兼职可到职日期:随时月薪要求:面议希望工作地区:天河区,越秀区,广州工作经历无起止年月:-10~-05公司性质:所属行业:担任职位:作业指导工作描述:辅导小学生作业,照顾小学生广州地铁起止年月:2012-04~2012-05担任职位:地铁志愿者工作描述:毕业院校:广东交通职业技术学院好文供参考!10/15最高学历:大专获得学位:毕业日期:-06专业一:软件技术专业二:起始年月终止年月学校(机构)所学专业获得证书证书编号语言能力外语:英语良好粤语水平:一般其它外语能力:国语水平:优秀工作能力及其他专长熟悉计算机办公软件操作、C语言,数据结构,数据库原理,汇编语言,软件工程等Windows编程、网页制作个人自传性格开朗,成绩优良,乐于助人;善于与人交流、适应能力强、具有团体协作精神;喜欢运动数据结构实验报告4数据结构实验报告范例篇1:数据结构实验报告范例《数据结构与算法》实验报告专业班级姓名学号实验项目实验一二叉树的应用好文供参考!11/15实验目的1、进一步掌握指针变量的含义及应用。2、掌握二叉树的结构特征,以及各种存储结构的`特点及使用范围。3、掌握用指针类型描述、访问和处理二叉树的运算。实验内容题目1:编写一个程序,采用一棵二叉树表示一个家谱关系。要求程序具有如下功能:(1)用括号表示法输出家谱二叉树,(2)查找某人的所有儿子,(3)查找某人的所有祖先。算法设计分析(一)数据结构的定义为了能够用二叉树表示配偶、子女、兄弟三种关系,特采用以下存储关系,则能在二叉树上实现家谱的各项运算。二叉树型存储结构定义为:typedefstructSNODE{charname[MAX];//人名structSNODE*left;//指向配偶结点structSNODE*right;//指向兄弟或子女结点}FNODE;(二)总体设计好文供参考!12/15实验由主函数、家谱建立函数、家谱输出函数、儿子查找函数、祖先查找函数、结点定位函数、选择界面函数七个函数共同组成。其功能描述如下:(1)主函数:统筹调用各个函数以实现相应功能voidmain()(2)家谱建立函数:与用户交互建立家族成员对应关系voidInitialFamily(FNODE*&head)//家谱建立函数(3)家谱输出函数:用括号表示法输出家谱输出形式为:父和母(子1和子妻1(孙1),子2和子妻2(孙2))voidPrintFamily(FNODE*head)//家谱输出函数(4)儿子查找函数:在家谱中查找到某人所有的子女并输出,同时也能辨别出其是否为家族成员与是否有子女voidFindSon(FNODE*b,charp[])//儿子查找函数(5)祖先查找函数:在家谱中查找到某人所有的祖先并输出,同时也能辨别出其是否为家族中成员。intFindAncestor(FNODE*head,charson[])//祖先查找函数(6)结点定位函数:在家谱中找到用户输入人名所对应的结点。FNODE*findnode(FNODE*b,charp[])//结点定位函数(7)选择界面函数:为便于编写程序,将用户选择部分好文供参考!13/15独立为此函数。voidPRINT(int&n)(三)各函数的详细设计:voidInitialFamily(FNODE*&head)//家谱建立函数1:首先建立当前人的信息,将其左右结点置为空,2:然后让用户确定其是否有配偶,如果没有配偶,则当前程序结束,3:如果有则建立其配偶信息,并将配偶结点赋给当