数据结构与算法之树、森林与二叉树的转换(手绘)

树、森林与二叉树的转换

视频讲解:【数据结构】树、二叉树、森林直接的转换_哔哩哔哩_bilibili

树转换成二叉树

原则:

  1. 给兄弟加线
  2. 给出除长子外的结点去线【第一个连接的节点就是长子】
  3. 层次调整,兄弟节点变成右子元素【书上说:以树根为轴心,顺时钟旋转 45 度】

步骤展示

连线

在这里插入图片描述

给出除长子外的结点去线

在这里插入图片描述

层次调整

在这里插入图片描述

森林转换成二叉树

原则

  1. 森林中的每棵树=> 二叉树
  2. 将所有的二叉树=> 一颗二叉树

步骤展示

以下列森林为例

在这里插入图片描述

根据树转换成二叉树的原则将每颗树转变成二叉树

在这里插入图片描述

第 n 棵树作为第 n-1 棵树根节点的右子节点

在这里插入图片描述

二叉树转换成树

原则

  1. 加线:结点与其后代的右孩子结点连接
  2. 去线:去除结点[有右孩子的结点]与其右孩子结点连接
  3. 层序调整:同层次调整,兄弟节点变成右子元素【书上说:以树根为轴心,顺时钟旋转45度】

步骤展示

加线

在这里插入图片描述

去线

在这里插入图片描述

层序调整

在这里插入图片描述

二叉树转化到森林

能否转换成森林,看二叉树的根节点有无右孩子?有就是森林

原则

  1. 去线:寻找右孩子去线,分离后的两颗树也需要这么分离,直到均无右孩子
  2. 转换:将分离的二叉树转换成树

步骤展示

去线

在这里插入图片描述

转换

在这里插入图片描述

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

five-five

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值