- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)
函数功能描述:计算树的高度
函数调用之前的预备条件:一个指向结点的指针
返回后的处理:
返回值(如果有的话):树的高度
函数的输入参数:无
函
您可能关注的文档
- 杂环化合物习题.ppt
- 杆件的应力.ppt
- 李改改毕业设计1.doc
- 李官官庄郑向堂.ppt
- 李清照 (1084-1155) 号易安居士,南宋杰出女文学家,章丘明....ppt
- 李建松,武汉大学 ---空间分析.ppt
- 李清照渔家傲精品课件.ppt
- 李涛公开课_活塞的检测微课.ppt
- 杏花村,度假村光伏设计方案.docx
- 李明波摩擦力.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- My Life in China and America [容闳自传:我在中国和美国的生活].pdf
- 常熟银行研究报告:回归小微初心,乘风乡村振兴.doc VIP
- 浙商证券-宠物行业从乖宝宠物看宠物赛道:陪伴需求催化宠物新蓝海,食品赛道频现龙头.pdf
- ctgd-sop v5风口安装作业指导书.pdf VIP
- 消化道出血有关试题附有答案.docx VIP
- 湘教版美术《家乡的古建筑》说课稿.doc
- 上海地区不同垂直骨面型成人临床冠中心高度的比较研究.pdf VIP
- 2023年 AMC 10B 数学竞赛(原卷+答案).doc VIP
- 世界贸易组织.ppt VIP
- 2023年 AMC 10A 数学竞赛(原卷+答案).doc
文档评论(0)