美文网首页
树的转换与平衡二叉树

树的转换与平衡二叉树

作者: cccccttttyyy | 来源:发表于2018-08-02 22:01 被阅读0次

树如何转化成二叉树

  1. 将树的根节点直接作为二叉树的根节点。

  2. 将树的根节点的第一个子节点作为二叉树根节点的左指针,若该子节点存在兄弟节点,则将该子节点的第一个兄弟节点(方向从左往右)作为该子节点的右指针。

  3. 树中的剩余节点按照上一步的方式(左孩子,右兄弟),依序添加到二叉树中。直到树中所有的节点都在二叉树中。

    如何将树转化为二叉树

二叉排序树

节点左子树的数据必须小于该节点的数据,右子树必须大于该节点的数据。 中序遍历刚好是从小到大排列。


图片.png

平衡树

为什么要有平衡树:对二叉排序树进行查询、新增、删除操作时,决定所花的时间与树的高度相关,与树的容量不成正比。因此,将二叉排序树无论在什么情况下都能使他的形态最大限度的接近满二叉树来保证他的查询效率就很有意义。
平衡树:它或者是一颗空树,或者是具有以下性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度只差的绝对值不超过1。
平衡因子:每一节点的左子树高度减右子树高度称为该节点的平衡因子。平衡二叉树每一节点的平衡因子只能是0,-1,+1.

平衡二叉树的调整

不平衡节点称为麻烦节点,调整优先下层不平衡子树
左单旋LL(要从左向右旋)
添加节点在麻烦节点的左子树的左节点上导致不平衡

图片.png

右单旋RR(要从右向左旋)
添加节点在麻烦节点的右子树的右节点上


图片.png

LR旋转(先从左向右,再从右向左)
添加节点在麻烦节点的左子树右节点上


图片.png

注意 下图要先旋转9 10 再按RR型旋转


图片.png

RL旋转
添加节点在麻烦节点右子树左节点上


图片.png 图片.png

相关文章

  • Java_二叉树概念及基本操作

    树、森林和二叉树的转换 树转换为二叉树 森林转换为树 二叉树转换为树 二叉树转换为森林 代码

  • leetcode110.平衡二叉树,111.二叉树的最小深度

    平衡二叉树 题目链接 题解:递归 什么是平衡二叉树?平衡二叉树对任意一个节点来说,左子树与右子树的高度差不会超过1...

  • 剑指 offer:39、平衡二叉树

    39. 平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解题思路: 平衡二叉树:Wiki:在...

  • 四、树与二叉树的互相转换

    树与二叉树的互相转换 森林与二叉树的互相转换 最后一张图还是难以理解的,我们首先可以发现这三棵二叉树的根节点右边都...

  • 平衡二叉树

    1)什么是平衡二叉树?2)平衡二叉树的特点是什么?3)平衡二叉树的构建实现? 一、什么是平衡二叉树?假设有一组数据...

  • 平衡二叉树

    题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:平衡二叉树的特点是左子树与右子树的高度相差不大于1,所...

  • 面试题:平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 知识点 平衡二叉树 Qiang的思路 平衡二叉树是指一个...

  • 阿里腾讯面试官问为什么Mysql用B+树做索引而不用B-树或红黑

    说这个面试题,先来回顾一下B+树、B-树、平衡二叉树、红黑树的概念 平衡二叉树 平衡二叉树又被称为AVL树 平衡二...

  • 树与二叉树

    **树 ** 二叉树 满二叉树 完全二叉树 三种遍历方法 树与二叉树的区别 二叉查找树 平衡二叉树 红黑二叉树

  • 树的转换与平衡二叉树

    树如何转化成二叉树 将树的根节点直接作为二叉树的根节点。 将树的根节点的第一个子节点作为二叉树根节点的左指针,若该...

网友评论

      本文标题:树的转换与平衡二叉树

      本文链接:https://www.haomeiwen.com/subject/wxbqvftx.html