C++数据结构与算法笔记之实验八 二叉树构造及遍历 | 您所在的位置:网站首页 › 数据结构二叉树实验报告问题及解决方法 › C++数据结构与算法笔记之实验八 二叉树构造及遍历 |
实验八 二叉树构造及遍历 实验目的 1.理解树形结构中结点和结点间关系的基本概念; 2.掌握二叉树的链式存储结构; 3.掌握二叉树结点的递归访问方法; 4.掌握二叉树的遍历。 实验环境 Windows 7以上版本的操作系统,Visual Studio 2010编程环境。 实验内容和步骤 1.根据以下的二叉树完成实验内容: 1)写出前序、中序和后序遍历序列; 前序:ABDECFG 中序:DBEAFGC 后序:DEBGFCA 2)分别写出单分支结点和叶子结点; 单分支节点:(度为1 ) CF 叶子节点:(度为0) DEG 3)以(#号)NULL补全单分支结点和叶子结点的空分支; 4)写出补全空分支(#号)后二叉树的前序遍历序列; 前序:ABD##E##CF#G### 5)在BiTree项目的main()函数中,将第4)小题的带#号的前序遍历序列作为数组A[]的值,并执行程序,以理解CreateBTree_Pre()函数的递归建树的过程。 ABD##E##CF#G### 6)在BiTree项目中添加二叉树的中序或后序遍历接口,并在主函数中进行验证。 中序遍历:void InOrder (BTNode *root); 后序遍历:void PostOrder (BTNode *root); 在Bitree.cpp文件中添加: //中序遍历 void InOrder(BTNode *root) { if (root != NULL) { InOrder(root->left); //中序遍历左子树 cout right); //中序遍历右子树 } } //后序遍历 void PostOrder(BTNode *root) { if (root != NULL) { PostOrder(root->left); //中序遍历左子树 PostOrder(root->right); //中序遍历右子树 cout BTNode* temp = node->left; node->left = node->right; node->right = temp; InvertBiTree(node->left); InvertBiTree(node->right); } }反转二叉树后:序列也会随之进行反转改变 运行截图: |
CopyRight 2018-2019 实验室设备网 版权所有 |