实验11 二叉树的进一步操作.doc_第1页
实验11 二叉树的进一步操作.doc_第2页
实验11 二叉树的进一步操作.doc_第3页
实验11 二叉树的进一步操作.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学城市学院实验报告课程名称 数据结构基础 实验项目名称 实验十一 二叉树的进一步操作 实验成绩 指导老师(签名 ) 日期 一. 实验目的和要求1、熟练掌握二叉树二叉链表的存储结构。2、进一步掌握在二叉链表上的二叉树操作的实现原理与方法。3、掌握中序遍历的非递归算法。二. 实验内容1、实现以下说明的操作函数,添加到实验十所写的头文件binary_tree.h中,并建立主函数文件test4_2.cpp,编写测试语句加以验证。操作函数如下:void InOrder2( BTreeNode *BT ); /非递归中序遍历二叉树BT void ChangeBTree(BTreeNode *&BT);/将二叉树中的所有结点的左右子树进行交换:Int CountBTree(BTreeNode *BT);/统计二叉树中的所有结点数并返回BTreeNode * CopyBTree(BTreeNode *BT);/复制一棵二叉树,并返回复制得到的二叉树根结点指针2、选做:实现以下说明的操作函数,添加到头文件binary_tree.h中,并在主函数文件test4_2.cpp中添加相应语句进行测试。int SimilarTrees(BTreeNode *BT1,BTreeNode *BT2)/判断两棵二叉树是否相似。所谓相似是指如果两棵二叉树具有相同的树型,则称它们是相似的,否则不是。BTreeNode * RemoveLeaves(BTreeNode *BT1)/摘树叶:摘除一棵二叉树上的所有叶子结点后返回一棵新的二叉树。3、填写实验报告,实验报告文件取名为report11.doc。4、上传实验报告文件report11.doc 、源程序文件test4_2.cpp及binary_tree.h到Ftp服务器上自己的文件夹下。三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路)函数:void InOrder2( BTreeNode *BT )功能:非递归中序遍历二叉树BT思路:使用链栈来储存结点值。当前结点或者链栈非空时,判断当前结点是否非空,若非空则将其入栈,指针指向左孩子进入下一轮判断;若空则将栈顶元素(即当前结点的根结点)出栈输出,指针指向其右孩子进入下一轮判断。函数:BTreeNode* ChangeBTree(BTreeNode *BT)功能:将二叉树中的所有结点的左右子树进行交换思路:利用递归,优先交换最底层的结点。函数:int CountBTree(BTreeNode *BT)功能:统计二叉树中的所有结点数并返回思路:如果当前结点为空,则返回0;否则返回其左右孩子结点数之和加1函数:BTreeNode * CopyBTree(BTreeNode *BT)功能:复制一棵二叉树,并返回复制得到的二叉树根结点指针思路:如果当前结点为空则返回空,否则新建结点保存当前结点的值,并递归复制其左右孩子。函数(选作):int SimilarTrees(BTreeNode *BT1,BTreeNode *BT2)功能:判断两棵二叉树是否相似思路:假如两棵树都为空,则相似返回1;若仅有一个非空,则不相似返回0;两个都不为空,返回递归分别比较以其左右孩子为根结点的子树是否相似。函数(选作):BTreeNode * RemoveLeaves(BTreeNode *BT)功能:摘树叶:摘除一棵二叉树上的所有叶子结点后返回一棵新的二叉树思路:如果当前结点为空则返回空,否则则先判断是否为叶子结点(左右孩子均为空),若是则删除返回空,若不是,递归调用函数对其非空子树进行摘叶操作。四. 实验结果与分析(包括运行结果截图、结果分析等)测试数据:ab$cd$e$结果分析:非递归中序遍历结果为b a d c e,正确;该二叉树结点数为5,正确;经左右交换的二叉树和由原二叉树复制而来的二叉树输出均正确。选作部分测试数据:hi$jk$l$结果分析:该二叉树应当与第一次输入时的二叉树相似,经函数判断,该二叉树与复制的原二叉树相似,与经过左右交换的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论