已知一棵二叉树的中序遍历序列为DGBAECHIF,后序遍历序列为GDBEIHFCA。
(1)试画出该二叉树;
(2)试画出该二叉树对应的森林;

1.首先看后序遍历得知A是根节点,然后再看中序遍历A在中间,也就是说分为两部分左子树DGB和右子树ECHIF。

2.然后先看DGB,在后序遍历中顺序是GDB也就是说B是左子树的根节点,DG为B 的左子树。再看DG,由后序遍历知道D为根节点,G为D的右叶子。

3.同理,在右子树中C为根节点,E为C的左子树,HIF是C的右子树,在HIF中 ,F为根节点,IH是他的左子树,在IH中,H是根节点,I是他的右叶子。

所以最后画出来是这个样子的:

关于二叉树转化为森林:

1.假如,想要转换成森林,从根节点开始,如果右孩子存在,则把与右孩子结点的连线删除。再查看分离后的二叉树;如果它根节点的右孩子存在,就连线删除。直到所有根节点与右孩子的连线都删除为止。

2.将每棵分离后的二叉树都转换为树。

R8-1 中序和后序创建二叉树相关推荐

  1. 手动创建一棵二叉树,然后利用前序、中序、后序、层序进行遍历(从创建二叉树到各种方式遍历)(含运行结果)

    手动创建一棵二叉树,然后利用前序.中序.后序.层序进行遍历 import java.util.LinkedList; import java.util.List; import java.util.Q ...

  2. 二叉树的前序、中序、后序遍历与创建

    #include <iostream> #include <string> #include <stack> using namespace std; struct ...

  3. 先序创建二叉树,中序、先序、后序遍历

    该文件用于创建一颗链表二叉树,测试创建二叉树,先序.中序.后序三种遍历方式 创建二叉树代码如下: #define _CRT_SECURE_NO_WARNINGS #define TYPE char s ...

  4. 二叉链表-创建、遍历(前序、中序、后序、非递归、层次)、复制、计算深度、结点数、销毁(C语言)

    目录 二叉树的定义 二叉树的性质 二叉链表的基本操作 二叉链表的结构定义 前序遍历创建 前序.中序.后序遍历 中序遍历的非递归算法(栈) 层次遍历(队列) 复制二叉树 计算深度 计算总结点数与叶子结点 ...

  5. 二十五、二叉树的前序、中序、后序遍历

    一.为何使用树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快.对于有序数组,还可使用二分查找提高检索速度. 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较 ...

  6. 把一个数组的值存入二叉树中,然后利用前序、中序、后序3种方式进行遍历(完整代码以及运行结果)(Java)

    把一个数组的值存入二叉树中,然后利用前序.中序.后序3种方式进行遍历(完整代码以及运行结果) 在最近的面试过程中,听说有小伙伴被面试官要求创建二叉树,然后对该二叉树进行遍历,感觉这一直以来都是一个大家 ...

  7. 数据结构-简单实现二叉树的先序、中序、后序遍历(java)

    第一步:创建一颗二叉树 public class Node { private int data;//数据域private Node leftNode;//左孩子private Node rightN ...

  8. 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)

    引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...

  9. 二叉树先序,中序,后序,层次遍历(数据结构)

    先序遍历 先序遍历可以想象为,一个小人从一棵二叉树的根节点为起点,沿着二叉树的外沿,逆时针走一圈回到根节点,路上遇到的元素顺序,就是先序遍历的结果 先序遍历的结果为:A B D H I E J C F ...

  10. 二叉树的递归遍历(先序,中序,后序)

    #include "stdio.h" #include "malloc.h" #define M 100 typedef struct node { /* 采用 ...

最新文章

  1. java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期
  2. 7能进安全模式但正常启动黑屏_电脑进入系统后黑屏怎么解决
  3. 月光博客 - 再谈软件保护中软加密和硬加密的安全强度
  4. python面向编程:类继承、继承案例、单继承下属性查找、super方法
  5. QDoc包括代码内联includecodeinline
  6. html如何设置字符类型,html 空格字符类型
  7. 插值算法及matlab实现,MATLAB 插值算法实现
  8. linux系统的文件系统tmpfs,linux里tmpfs文件系统
  9. ShardingSphere源码解析 初步准备
  10. SQLyog简介和使用
  11. 嵌入式C编程中的设计模式之二——状态机模式
  12. 互联网周刊咋么了呢?
  13. 人工智能助力三维几何自动化建模
  14. Xcode13 新建项目 Products 目录显示方法
  15. C语言 程序的翻译 预处理 编译 汇编 链接 #define详解
  16. 华为p10关闭更新_华为p10系统更新,华为emui5.0能否手撕emui4.1
  17. 万字长文详解 Go 程序是怎样跑起来的?| CSDN 博文精选
  18. Go语言中的字符串拼接方法介绍
  19. ADG修改主备数据同步规则--ARCHIVE_LAG_TARGET参数
  20. 解决部署Hexo后出现的The custom domain for your GitHub Pages site is pointed at an outdated IP address警告

热门文章

  1. 让我们一起为宝宝选绘本(怎么给宝宝挑选绘本,看完本文就够了)
  2. 实战技法 - 短线操盘 (8)
  3. 数据结构算法常见的 100 道面试题全解析:2019 版
  4. 金蝶云苍穹集成,苍穹到eas审核反审核
  5. RGB与YCbCr颜色空间的转换
  6. 详细介绍GPIO、I2C、SPI通讯原理以及物理层原理
  7. 记一道字节跳动的算法面试题
  8. Zeepelin系列(一)Zeepelin安装和配置以及对Hive的基本使用
  9. python爬数据处理\ufeff、\xa0、\u3000的方法 (转载)
  10. Unity3D编辑器插件开发