当前位置: 代码迷 >> 综合 >> 二叉树的遍历的应用
  详细解决方案

二叉树的遍历的应用

热度:47   发布时间:2024-01-19 10:45:30.0
统计二叉树中叶子结点的个数
算法基本思想:先序 ( 或中序或后序 ) 遍历二叉树,在遍历过程中查找叶子结点,并计数。由此,需在遍
历算法中增添一个 “ 计数 ” 的参数,并将算法中 “ 访问结点 ” 的操作改为:若是叶子,则计数器增 1 。
求二叉树深度
算法基本思想:首先分析二叉树的深度和它的左、右子树深度之间的关系。从二叉树深度的定义可知,
二叉树的深度应为其左、右子树深度的最大值加 1 。由此,需先分别求得左、右子树的深度,算法中 “ 访
问结点 ” 的操作为:求得左、右子树深度的最大值,然后加 1 。
复制二叉树
算法思想:复制出左子树和右子树,之后创建左右子树的根节点。         
输出二叉树上从根到所有叶子结点的路径
算法思想:对二叉树做前序遍历,遇到节点则对应节点数据入栈,如果节点是叶子节点,则将当前栈内
数据进行遍历输出,之后弹出栈顶元素;否则递归执行上面的操作,对左子树和右子树进行操作,弹出
栈顶元素
建立二叉树的存储结构
通过输入一个二叉树的字符串描述,获得二叉树的在链式存储结构体。
首先扩展二叉树,对二叉树的每个节点的空指针引出一个虚节点,其值设为 ‘#’ ,称这种树为扩展二叉 树。
根据前序遍历和中序遍历得到后续遍历
给定前序遍历和中序遍历结果,请问这个树的后序遍历结果是多少?例如已知前序遍历序列为 ABCDEF
中序遍历序列为 CBAEDF ,后序遍历结果为?
前序遍历中 A 是第一个是根节点,中序遍历中 A 的左边是左子树内容,右边的是右子树内容。在看前序遍
历中 BC 的关系,结合中序遍历得到中间图。 EDF 的关系也可以根据刚才规律可以得出。
算法实现思想:递归实现,首先从中序遍历中用 Search 函数找到前序遍历得到的第一个字符位置,如果
找到了创建该字符节点,以此位置划分对前序 [ps+1..ps+k-is] 位置中序 [is..k-1] 位置为单位构建左子树,
以前序 [ps+k-is+1..ps+n-1] 位置中序 [k+1..n+is-1] 位置为单位构建右子树。
  相关解决方案