树的遍历实验报告.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树的遍历实验报告

实验项目: 树的遍历 实验目的:学会创建一棵二叉树,以及完成对树的简单操作。 实验内容: 1) 生成一棵以二叉链表存储的二叉树bt(不少于15个结点) 2) 分别用递归和非递归方法前序遍历bt,并以缩格形式打印bt上各结点的信息。 3) 编写算法,交换bt上所有结点的左、右子树,并以缩格形式打印出交换前后的bt结点信息。 程序简介:先创建一棵二叉树,递归非递归前序遍历,层次遍历,交换左右子树,缩格打印各结点的信息。 算法设计介绍: 首先按照前序遍历的顺序递归创建一棵二叉树,然后序遍历的非递归使用堆栈完成的,即访问该结点的时候,如果有右孩子,让右孩子进栈,访问左孩子,当左孩子为空时,抛出栈顶的元素,访问出栈的这个元素的左右孩子。缩格打印和层次遍历想法类似,都是借助队列完成的,把当前结点的左右孩子进队列之后,让这个结点出队列。交换左右子树,就是当某个结点的左右子树不同时为空时,定义一个中间变量交换。 困难及解答 一开始创建二叉树的参数我想用指向结构体的指针,后来才意识到得用指向指针的指针,想了好一段时间才想明白,因为某个结点的左右孩子是指向结点的指针,要想再指向一个指针,只能用指针的指针了。 心得 树这一章我听得乱七八糟,上课能听懂,但就是不会编程,要不是书上有算法,我估计我肯定编不出来,看来还是得多编啊。 程序清单 /* // 我真诚地保证: // 我独立完成了整个程序从分析、设计到编码的所有工作。 // 如果在上述过程中,我遇到了什么困难而求教于人,那么,我将在程序实习报告中 // 详细地列举我所遇到的问题,以及别人给我的提示。 // 我的程序里中凡是引用到其他程序或文档之处, // 例如教材、课堂笔记、网上的源代码以及其他参考书上的代码段, // 我都已经在程序的注释里很清楚地注明了引用的出处。 // 我从未没抄袭过别人的程序,也没有盗用别人的程序, // 不管是修改式的抄袭还是原封不动的抄袭。 // 我编写这个程序,从来没有想过要去破坏或妨碍其他计算机系统的正常运转。 文件名称: 创建者: 创建时间:2011.5.3 最后修改时间:2011.5.6 功能:s树的创建、递归和非递归前序遍历、层次遍历、缩格打印、数的高度(根结点为第一层)、树的叶子数、交换左右子树 文件中的函数名称和简单功能描述: bool CreateBT(BiTree *T)--创建一棵二叉树,并用二叉链表存储, bool Recursion_PreOrder(BiTree T)--递归前序遍历 bool Non_Recursion_Preorder(BiTree T)--非递归前序遍历 int Height(BiTree T)--计算树的高度 void Indented_Printed(BiTree T)--缩格打印 void Hierarchy_Traversal(BiTree T)--层次遍历 void swap(BiTree T)--交换左右孩子 文件中定义的全局变量和简单功能描述:leaf,计算树的叶子 文件中用到的他处定义的全局变量及其出处:无 与其他文件的依赖关系: 2.关于类的说明: 类名称: BiTNode 定义该类的目的:结点类的结构体,组成二叉树 类属性: 类中函数及功能:无 与其他类的关系(调用/被调用哪类对象中的什么函数): 3. 关于函数的说明 (1) 函数名称:bool CreateBT(BiTree *T) 函数功能描述:创建一棵二叉树,并用二叉链表存储 函数调用之前的预备条件:指向结构体的指针的指针 返回后的处理:创建了一棵二叉树 返回值(如果有的话):true or false 函数的输入参数:无 函数的输出参数:无 (2) 函数名称:bool Recursion_PreOrder(BiTree T) 函数功能描述:前序递归遍历二叉树 函数调用之前的预备条件:指向结点的指针 返回后的处理:打印二叉树上结点的信息 返回值(如果有的话)true or false 函数的输入参数:无 函数的输出参数:无 (3) 函数名称:bool Non_Recursion_Preorder(BiTree T) 函数功能描述:非前序递归遍历二叉树 函数调用之前的预备条件:指向结点的指针 返回后的处理:打印二叉树上结点的信息 返回值(如果有的话)true or false 函数的输入参数:无 函数的输出参数:无 (4) 函数名称:int Height(BiTree T) 函数功能描述:计算树的高度 函数调用之前的预备条件:一个指向结点的指针 返回后的处理: 返回值(如果有的话):树的高度 函数的输入参数:无 函

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档