倒立的“树”难道不是圣诞树?倒立的“树”是不是更吸引你的眼球?

树,二叉树的转换,希望三哥可以三联支持小舞哦


快到圣诞节啦,没有圣诞树可不行,别眨眼,这不圣诞树来啦:
在这里插入图片描述
搞错了,重来,这不是倒立的树,这个才是
在这里插入图片描述

哈哈,惊不惊喜,小舞这次让你看了圣诞树,那么下面就来给你安利一波干货福利吧~
下面正式讲解二叉树与二叉树与树之间的转换

二叉树定义

二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分 。
二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点

二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树
由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。

树向二叉树的转换

深层理解

  • 将树的根节点直接作为二叉树的根节点
  • 将树的根节点的第一个子节点作为根节点的左儿子,若该子节点存在兄弟节点,则将该子节点的第一个兄弟节点(方向从左往右)作为该子节点的右儿子
  • 将树中的剩余节点按照上一步的方式,依序添加到二叉树中,直到树中所有的节点都在二叉树中

通俗理解
将树转换成二叉树的步骤是:

  • 加线:就是在所有兄弟结点之间加一条连线;
  • 抹线:就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;
  • 旋转:就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。
    在这里插入图片描述
    上图就是树转换成二叉树的步骤

二叉树转换为树

是和上面步骤的相反过程
(1)若某结点的左孩子结点存在,将左孩子结点的右孩子结点、右孩子结点的右孩子结点……都作为该结点的孩子结点,将该结点与这些右孩子结点用线连接起来;
(2)删除原二叉树中所有结点与其右孩子结点的连线;
(3)整理(1)和(2)两步得到的树,使之结构层次分明。
在这里插入图片描述
最后小舞祝大家圣诞节快乐,以上就是树的转换,创作不易,还希望能够多多支持哦!

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

i want to舞动乾坤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值