实验六二叉树实验报告

实验六二叉树实验报告

ID:35222143

大小:105.50 KB

页数:8页

时间:2019-03-22

实验六二叉树实验报告_第1页
实验六二叉树实验报告_第2页
实验六二叉树实验报告_第3页
实验六二叉树实验报告_第4页
实验六二叉树实验报告_第5页
资源描述:

《实验六二叉树实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验四二叉树的操作班级:计算机1002班姓名:唐自鸿学号:201003010207完成日期:2010.6.14题目:对于给定的一二叉树,实现各种约定的遍历。一、实验目的:(1)掌握二叉树的定义和存储表示,学会建立一棵特定二叉树的方法;(2)掌握二叉树的遍历算法(先序、中序、后序遍历算法)的思想,并学会遍历算法的递归实现和非递归实现。二、实验内容:构造二叉树,再实现二叉树的先序、中序、后序遍历,最后统计二叉树的深度。三、实验步骤:(一)需求分析1.二叉树的建立首先要建立一个二叉链表的结构体,包含根节点和左右子树。因为树的每一个左右子树又是一颗二叉树,所以用递归

2、的方法来建立其左右子树。二叉树的遍历是一种把二叉树的每一个节点访问并输出的过程,遍历时根结点与左右孩子的输出顺序构成了不同的遍历方法,这个过程需要按照不同的遍历的方法,先输出根结点还是先输出左右孩子,可以用选择语句来实现。2.程序的执行命令为:1)构造结点类型,然后创建二叉树。2)根据提示,从键盘输入各个结点。3)通过选择一种方式(先序、中序或者后序)遍历。4)输出结果,结束。(二)概要设计1.二叉树的二叉链表结点存储类型定义typedefstructNode{DataTypedata;structNode*LChild;structNode*RChild;

3、}BitNode,*BitTree;2.建立如下图所示二叉树:voidCreatBiTree(BitTree*bt)用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点。3.本程序包含四个模块1)主程序模块:2)先序遍历模块3)中序遍历模块4)后序遍历模块4.模块调用关系:主程序模块先序遍历模块中序遍历模块后序遍历模块(三)详细设计1.建立二叉树存储类型//==========构造二叉树=======voidCreatBiTree(BitTree*bt)//用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点//{char

4、ch;ch=getchar();if(ch=='.')*bt=NULL;else{*bt=(BitTree)malloc(sizeof(BitNode));//申请一段关于该节点类型的存储空间(*bt)->data=ch;//生成根结点CreatBiTree(&((*bt)->LChild));//构造左子树CreatBiTree(&((*bt)->RChild));//构造右子树}}2.编程实现以上二叉树的前序、中序和后序遍历操作,输出遍历序列1)先序遍历二叉树的递归算法如下:voidPreOrder(BitTreeroot){if(root!=NULL)

5、{Visit(root->data);PreOrder(root->LChild);//递归调用核心PreOrder(root->RChild);}}2)中序遍历二叉树的递归算法如下:voidInOrder(BitTreeroot){if(root!=NULL){InOrder(root->LChild);Visit(root->data);InOrder(root->RChild);}}3)后序遍历二叉树的递归算法如下:voidPostOrder(BitTreeroot){if(root!=NULL){PostOrder(root->LChild);Pos

6、tOrder(root->RChild);Visit(root->data);}}4)计算二叉树的深度算法如下:intPostTreeDepth(BitTreebt)//求二叉树的深度{inthl,hr,max;if(bt!=NULL){hl=PostTreeDepth(bt->LChild);//求左子树的深度hr=PostTreeDepth(bt->RChild);//求右子树的深度max=hl>hr?hl:hr;//得到左、右子树深度较大者return(max+1);//返回树的深度}elsereturn(0);//如果是空树,则返回0}四、调试分析及

7、测试结果1.进入演示程序后的显示主界面:请输入二叉树中的元素;先序、中序和后序遍历分别输出结果。2.测试结果以扩展先序遍历序列输入,其中.代表空子树:ABC..DE.G..F…先序遍历序列为:ABCDEGF中序遍历序列为:CBEGDFA后序遍历序列为:CGEFDBA此二叉树的深度为:53.程序运行结果1)输入二叉树中的元素(以扩展先序遍历序列输入,其中.代表空子树),显示截图为:图一2)输出结果,显示界面为:图二4.调试分析:本程序通过分别调用先序遍历、中序遍历以及后序遍历函数对二叉树中的元素进行遍历,整个程序基本满足实验要求,但是在一些细节问题上面还是存在

8、缺陷,比如大小写字母不同也会导致程序无法运行,这就需

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。