}intLeafCnt(BinTree bt)///计算叶子节点个数{if(bt==NULL)return0;elseif(bt->LChild==NULL&&bt->RChild==NULL)return1;elsereturnLeafCnt(bt->LChild)+LeafCnt(bt->RChild); }intBintreeDep(BinTree bt)///计算二叉树的深度{intdepl,depr;if(bt==NULL)return0;else{returnmax(BintreeDep(bt->LC...
//判断是不是高度平衡的二叉树 public boolean isBalanced(TreeNode root){ return treeHeight(root) >= 0; } //计算二叉树的高度 public int treeHeight(TreeNode root) { if (root == null) { return 0; } int leftHeight = treeHeight(root.left); if (leftHeight < 0) { return -1; } int ...
1.用C或C++语言建立二叉树,并实现二叉树的先根、中根、后根遍历。 2.在此基 础上,实现树与二叉树的相互转换。 3.实现一个简单的哈夫曼编码/译码器,能根据一段电文设计赫夫曼编码,并 能用该编码对一段给定的电文进行译码。 难度A:建立二叉树,并实现二叉树的先根、中根、后根遍历;个人完成, 评分最高 70...
1、理解二叉树的基本特性; 2、掌握二叉树的基本操作,如遍历、创建、计算结点,线索化等,熟悉哈夫曼编码算法。 二、实验内容: 1. 先按先序遍历序列建立二叉树的二叉链表; 2. 用递归方式实现以下操作: 1) 计算二叉树结点总数 2) 计算二叉树深度 3) 计算二叉树叶子结点总数 4) 交换二叉树每个结点的左孩子和右...
6667voidInitBiTree(BiTree &T)68{//操作结果:构造空二叉树T69T=nullptr;70}7172intBiTreeEmpty(BiTree T)73{//初始条件:二叉树T存在。操作结果:若T为空二叉树,则返回TRUE,否则FALSE74if(T)75returnerror;76else77returnok;78}7980voidDestroyBiTree(BiTree T)81{//初始条件:二叉树T存在。操作结果:销毁...
已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历。 Input 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列。
1.创建二叉树(二叉链表形式) 2.前序遍历 3.中序遍历 4.后序遍历 5.总结点数 6.叶子结点数 7.树的深度 8.树根到叶子的最长路径 9.交换所有左右子女 10.顺序存储 七、思考讨论题或体会或对改进实验的建议 通过这次实验,我掌握了二叉树的顺序存储和链式存储,体会了二叉树的存储结构的特性,掌握了二叉树的树...
五、实验步骤 1、根据二叉树的各种存储结构建立二叉树; 2、设计求叶子结点个数算法和树的深度算法; 3、根据表达式建立相应的二叉树,生成表达式树的模块; 4、根据表达式树,求出表达式值,生成求值模块; 5、程序运行效果,测试数据分析算法。 六、测试数据 1、输入数据:2.2*(3.1+1.20)-7.5/3 正确结果:6.96 2、输...
数据结构——树这是我们数据结构的一个实验题。 【问题描述】建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。 【基本要求】从键盘输入先序序列,以二叉链表作为存储结构,建立二叉树(以先序来建立)并对其进行遍历(先序、中序、后序),然后将遍历结果打印输出。要求采用递...
(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 二叉树的存储结构:typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; 子程序模块:BiTree Create(BiTree T) ...