树,二叉树,森林的互相转换

树,二叉树,森林的互相转换

这篇博客探究树,二叉树,森林之间的互相转换。首先我们在学习一个新的知识点的时候要清楚该知识点是什么,为什么,怎么做。这样能帮助我们理解还能让我们在以后用的到地方马上想起来。"是什么"我们从标题中就能读出。那么进入正文。

树与二叉树之间的转换

1.加线,在所有兄弟结点之间加一根线
2.去线,对树中的每一个结点,只保留对第一孩子(左子树)的连线,删除与其他孩子结点之间的连线
加线如绿线所示,删除如被选中的红线所示3.位置调整
每个结点的左右子树位置不能变

森林转换为二叉树

森林
1.将森林中的每一颗树都改为二叉树
2.将每颗树的根相连
3.位置调整

二叉树转换为森林或普通树

简单的逆操作即可完成

为什么要用到二叉树和森林、普通树之间的转换

1.首先我们要了解普通树的两种遍历方式,先根遍历和后根遍历

-先根遍历的遍历顺序就是从根开始到左子树再到右子树。例如上图中的的先根遍历的顺序为ABEFCGDHIJ

-后根遍历的遍历顺序就是从左子树开始到右子树再到根。例如上图中的的先根遍历的顺序为EFBGCHIJDA

2.我们再来看看转换后的二叉树的前序遍历和中序遍历
二叉树

-前序遍历的顺序就是从根到左子树再到右子树,例如上图中的二叉树的前序遍历为ACEFCGDHIJ

-中序遍历的顺序就是从左子树到根再到右子树,例如上图的二叉树的中序遍历为EFBGCHIJDA
3.综上我们发现普通树/森林的前根遍历和其转换后的二叉树的前序遍历结果相同,普通树/森林的后根遍历和其转换后的二叉树的中序遍历结果相同。
那么当我们对普通树或森林的较为复杂的遍历等操作就可以将其转换为二叉树后进行遍历等操作较为简单。

总结

综上所述,我们解决了该知识是什么,为什么,怎么做的问题。“是什么”:树,二叉树,森林的互相转换;“为什么”:将普通树或森林的较为复杂的遍历等操作转换为简单的二叉树遍历等操作。“怎么做”:树与二叉树之间的转换1.加线,在所有兄弟结点之间加一根线2.去线,对树中的每一个结点,只保留对第一孩子(左子树)的连线,删除与其他孩子结点之间的连线。森林转换为二叉树:1.将森林中的每一颗树都改为二叉树。2.将每颗树的根相连。

-写在最后,以上为我观看小甲鱼的数据结构算法的课后笔记,图片也来自小甲鱼的视频。侵权联系删除。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值