二叉树与树的相互转化

树转化为二叉树

  • 加线,在所有兄弟结点之间加线

  • 去线,对树中每个结点只保留与它第一个孩子结点的连线,删除与其他孩子结点之间的连线
  • 其中每个结点左指针指向她的第一个孩子结点,右指针指向他在树中的相邻兄弟结点,由于根节点没有兄弟,因此由树转换而得的二叉树没有右子树

由二叉树转化到树

  • 加线,若该结点存在做孩子,则将该结点与该结点的n个有孩子结点相连(即只要这个结点有左子结点,则将这个结点与子结点的右孩子结点相连,与右孩子结点的右孩子结点相连…有多少连多少)
  • 去线,去除所有结点与其右孩子结点连线

森林转化为二叉树

  • 每一颗树先转化为二叉树
  • 再将二叉树依次插入前一颗的右子树

二叉树转化为森林

  • 对比着森林转化为二叉树
  • 先将右子树一颗一颗拆下来
  • 再逐个转化为树

二叉树与树的相互转化相关推荐

  1. c++现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

    题目描述 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度 输入描述: 输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组 ...

  2. python数据结构 树_python 数据结构四 之 二叉树和树

    python数据结构教程第四课 树形结构是复杂结构中最简单的一类,这是一类非常重要的结构,在实际中使用广泛,反映了许多计算过程的抽象结构 一.简介 1.树 2.二叉树 二.二叉树和树的抽象数据类型(A ...

  3. 【数据结构笔记10】二叉树的先序、中序、后序遍历,中序遍历的堆栈/非递归遍历算法,层序遍历,确定一个二叉树,树的同构

    本次笔记内容: 3.3.1 先序中序后序遍历 3.3.2 中序非递归遍历 3.3.3 层序遍历 3.3.4 遍历应用例子 小白专场:题意理解及二叉树表示 小白专场:程序框架.建树及同构判别 文章目录 ...

  4. 二叉树(树,森林,二叉树互转)

    一.树转二叉树 如图一个三叉树转为二叉树 第一步:将同一结点的各孩子结点用虚线连起来 第二步:将每个结点的分支从左往右除了第一个以外,其余的都剪掉 第三步:调整结点使之符合二叉树的层次结构 二.二叉树 ...

  5. 二叉树转树(数据结构)(图解)

    二叉树转树 从根节点开始,将根节点与右孩子相连的线,以及与根节点的右孩子的右孩子相连的线全部去掉,剩余的转化为二叉树.(只删右侧) 例:将此二叉树转化为对应的树或森林 步骤1:从根节点开始,删除根节点 ...

  6. 二叉树排序树插入、创建、删除和查找

    二叉树排序树插入.创建.删除和查找 二叉排序树的概念 ​ 二叉排序树又称二叉查找树,它或者是一棵空树,或者是具有下列性质的二叉树 若它的左子树不为空,则左子树上所有结点的值均小于根结点的值 若它的右子 ...

  7. 【数据结构_Day05】 树和二叉树、树和森林、哈夫曼树

    1.树 根节点:非空树中无前驱结点的结点 结点的度:结点拥有的子树数 树的度:树内各结点的度的最大值 森林不一定是树,树一定是森林 2.二叉树 二叉树和树是不一样的概念 二叉树严格区分左子树和右子树, ...

  8. 信号放大器数据结构_[11/11]数据结构 二叉树应用(树型信号放大器,file transfer,遍历的非递归实现)...

    树型分布网络信号放大器 森林和二叉树的相互转换 并查集 例题:File transfer #include <iostream> using namespace std; //typede ...

  9. 数据结构-----二叉树,树,森林之间的转换

    图片和转换步骤来自这里 本文主要描述具体实现 用一种略微老土的话描述: 二叉树:每一节点最多有2个子节点,左边的叫左节点,右边的叫右节点,自己叫根节点. 树:每个节点的子节点数量不受限制. 森林:由若 ...

最新文章

  1. Android程序的反编译对抗研究
  2. c# 使用 itextsharp 实现生成Pdf报表
  3. linux下卸载 dev sd*下硬盘,Linux下硬盘操作解析
  4. nefu java作业2020.3.11第二章
  5. OpenGL Texture Wrap Modes纹理包裹模式的实例
  6. cloud foundry_介绍“又一个” Cloud Foundry Gradle插件
  7. TCP/ip通信模式
  8. 轻量云腾讯云服务器如何退款,腾讯云服务器等产品可以退款多少次?
  9. 超星考试浏览器_超星浏览器官方下载
  10. 迭代期望和方差(iterated expectation,variance)
  11. windows密码到期_如何在Windows 10中设置密码到期日期
  12. 数据结构课设 (快餐店 POS 机计费系统、成绩分析、算术表达式)
  13. 证书类型、自签CA证书、https双向认证(一篇就懂系列)
  14. linux p4使用心得
  15. 老李玩微博经验分享之如何发微博
  16. 编译Linux驱动程序
  17. 从STM32F407到AT32F407(一)
  18. 三面阿里,有惊无险成功拿到offer定级P7,只能说是真的难
  19. 山东财经大学新生赛暨天梯赛选拔赛 A 骆驼拼写法
  20. 用C语言写一个日期计算器

热门文章

  1. python画黑白线条_Python实现手绘图效果实例分享
  2. 新显卡出世,我们来谈谈与深度学习有关的显卡架构和相关技术
  3. 名帖62 欧阳询 小楷《心经》
  4. java中斜杠的用法_java培训学习中反斜杠“\”的用法
  5. linux安装包类型,Linux安装包类型
  6. 如何看java进程端口_查看一个进程对应的端口号
  7. 自动驾驶技术为什么需要这些复杂数据?
  8. 慧通教育——python进阶习题第一关(二)
  9. 小米手机为什么发热?
  10. 教你如何使用CorelDRAW描摹位图