美文网首页
平衡二叉树

平衡二叉树

作者: yangqi916 | 来源:发表于2017-03-01 19:24 被阅读0次

红黑树

1. 基于 2-3 Tree

为了让树高能够维持~lg(n)。
保持各个底部空链接和root距离相等(为了维持这个性质,后面插入时才会有各种变化)

1.1 结构

  • 2节点(含有一个key和两个链接)
  • 3节点(含有两个key和三个链接)

1.2 操作

  • 2节点 插入-->直接添加,变成3节点
  • 3节点 插入-->直接添加,然后裂变成三个2节点
  • 向父节点为2节点的 3节点 插入-->父节点变3节点,然后下面裂变成2个2节点
  • 向父节点为3节点的 3节点 插入-->会一直向上裂变,知道遇到2节点

2. 红黑树就是2-3树的一个实现

1.1 结构

  • 2节点(含有一个key和两个链接) ,就是普通链接,我们叫这种链接为黑链接
  • 3节点(含有两个key和三个链接),为了在二叉树中模拟出这种节点,我们设计两个节点由左斜链接相连的为3节点,其中的链接叫红链接

由此产生两个性质(联想2-3树原型就可以看出):

  1. 红链接均为左链接
  2. 没有任何一个节点与两个红链接相连
  3. 树是黑色平衡的。

如何表示红键:我们在每个node设一个color,其指代指向这个节点的链接的颜色。

相关文章

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

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

  • 平衡二叉树

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

  • 面试题:平衡二叉树

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

  • Leetcode 110 平衡二叉树

    平衡二叉树 题目 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每...

  • 二叉树2-平衡二叉树、完全二叉树、二叉树剪枝

    110.平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 一棵高度平衡二叉树定义为:一个二叉树每个节点 ...

  • Leetcode题解 - Easy - 4

    110- 平衡二叉树 问题 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一...

  • TreeMap源码分析

    TreeMap 平衡二叉树 平衡二叉树(Self-balancing binary search tree)又被称...

  • 图的应用[平衡二叉树以及散列查找]

    平衡⼆二叉树( AVL 树) 平衡⼆二叉树(Self-Balancing Binary Search Tree 或...

  • [LeetCode]110. 平衡二叉树

    110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个...

  • 力扣算法 - 平衡二叉树

    平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的...

网友评论

      本文标题:平衡二叉树

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