快到圣诞节啦,没有圣诞树可不行,别眨眼,这不圣诞树来啦:

搞错了,重来,这不是倒立的树,这个才是

哈哈,惊不惊喜,小舞这次让你看了圣诞树,那么下面就来给你安利一波干货福利吧~
下面正式讲解二叉树与二叉树与树之间的转换
二叉树定义
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分 。
二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点
二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树
由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。
树向二叉树的转换
深层理解
- 将树的根节点直接作为二叉树的根节点
- 将树的根节点的第一个子节点作为根节点的左儿子,若该子节点存在兄弟节点,则将该子节点的第一个兄弟节点(方向从左往右)作为该子节点的右儿子
- 将树中的剩余节点按照上一步的方式,依序添加到二叉树中,直到树中所有的节点都在二叉树中
通俗理解
将树转换成二叉树的步骤是:
- 加线:就是在所有兄弟结点之间加一条连线;
- 抹线:就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;
- 旋转:就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。
上图就是树转换成二叉树的步骤
二叉树转换为树
是和上面步骤的相反过程
(1)若某结点的左孩子结点存在,将左孩子结点的右孩子结点、右孩子结点的右孩子结点……都作为该结点的孩子结点,将该结点与这些右孩子结点用线连接起来;
(2)删除原二叉树中所有结点与其右孩子结点的连线;
(3)整理(1)和(2)两步得到的树,使之结构层次分明。
最后小舞祝大家圣诞节快乐,以上就是树的转换,创作不易,还希望能够多多支持哦!