数据结构实验报告之树与二叉树.docx
学生实验报告学 院:软通学院课程名称:数据结构与算法专业班级:软件142班姓 名:邹洁蒙学 号:0143990学生实验报告(-)学生姓名邹洁蒙学号0143990同组人:实验项目树与二叉树q必修口选修口演示性实验口验证性实验4操作性实验口综合性实验实验地点W102实验仪器台号A02指导教师严军勇实验日期及节次2015. 5. 223到4节次一、实验综述1、实验目的及要求目的:1)掌握树与二叉树的基本概念;2)掌握二叉树的顺序存储,二叉链表的先序遍历中序遍历和后序遍历算法;3)掌握树的双亲表示法。要求:1)编程:二叉树的顺序存储实现;2)编程:二叉链表的先序遍历中序遍历和后序遍历实现;3)编程:树的双亲表示法实现。2、实验仪器、设备或软件设备:PC软件:VC6二、实验过程(编程,调试,运行;请写上源码,要求要有注释)1 .编程:二叉树的顺序存储实现代码:BiTree:BiTree()建立存储空间(data = new intMAXSIZE;count = 0;void BiTree:AddNode(int e)加结点int temp = 0;datacount = e:count+; 从编号0开始保存运行截图:2 .编程:二叉链表的先序遍历中用遍历和后序遍历实现 代码:void InOrderTraverse(BiTree* Head)中序遍历(if (Head)(InOrderTraverse(Head->LeftChiId);cout « Head->data«z,InOrderTraverse(Head->RightChiId);)void PreOrderTraverse(BiTree* Head)先序遍历(if (Head)cout « llead->data « "PreOrderTraverse(llead->LeftChi Id);PreOrderTraverse(Head->RightChild);)void PostOrderTraverse(BiTree* Head)后序遍历(if (Head)(PostOrderTraverse(Head->LeftChild);PostOrderTraverse(Head->Ri ghtChi1d);cout « Head->data)运行截图:3 3 115 3 -5 4 2 -2 2 5 -414续怅 5日否否i3 3 115 3 -5 4 2 -2 2 5 -414续怅 5日否否i.编程:树的双亲表示法实现代码:void CreatcRoot(BiTree* &Head, int e)建立一个根节点,并且把头指针给Head (Head = new BiTree;Head->data = e;Head->LeftChild = NUI.L;RightChild = NULL;)void AddLeftChi 1 d(BiTree* &T, int e)加个左孩子 (T->LeftChild = new BiTree;T->LeftChild->data = e;T->LeftChild->LeftChild = NULL;T->LeftChild->Ri ghtChiId = NULL;void AddRightChi Id (BiTree* &T, int c)加一个右孩子 (T->RightChiId = new BiTree;T->RightChild->data = e;T->RightChild->LeftChild = NULL;T->RightChild->RightChild = NULL:)运行截图:123456789 10 11第1仅置的孩子为:空童6交置的皎子为:9 10 11第5莅置的双亲的有效敦据为:3三、结论1、实验总结(碰到了什么问题,如何解决?)预习时对二叉树性质3不理解,后来上课听老师讲,弄明白了。刚开始对二叉树的遍历不太理解,后来我仔细看了知识点和做了几道相关例题之 后,弄懂了。在练习树与二叉树的编程基础题时,没思路,后来自己看书和问同学能够自己编 写出来了。2、分析讨论(个人体会和心得)一分耕耘,一分收获。不管在学习数据结构这门课程还是在做其他的事时都要 认真对待,踏踏实实地去完成。一件事情,你用了多少心,结果一出来便见分晓。面对困难,比如说比较难懂的知识点,不要灰心,要坚持,在坚持不住时再坚 持一下,你便做到了常人不能做到的事情,这才是成功者该有的品质。我觉得自己要多努力,要见贤思齐,见不贤而内自省,才能让自己不再是井底 之蛙,才能使自己的大学生活变得更充实。好的生活习惯和学习习惯也是很重要的。 希望通过自己一次一次的反省和思考,能够学好专业知识和完善自己的品格。四、指导教师评语及成绩:成绩:指导教师签名:严军勇批阅日期:2015年5月25日