zoukankan      html  css  js  c++  java
  • 红黑树简述

    面试时候被问到了,

    二叉查找树: Binary Search Tree(BST)

    1.左子树上所有结点的值均小于或等于它的根结点的值。

    2.右子树上所有结点的值均大于或等于它的根结点的值。

    3.左、右子树也分别为二叉查找树。

    比如我想找10 ,右边比9大,到13 左边比13小 到11 左边比11小 到10

    二分查找的思想

    缺陷:

    初始树:

    插入结点

    失去了平衡,查找能力变成了线性。

    红黑树:

    插入多个节点后也能自平衡的二叉查找树。

    应用:JDK集合类TreeMap和TreeSet底层就是红黑树实现,Java8中HashMap也用到了红黑树。 

    1.节点是红色或黑色。

    2.根节点是黑色。

    3.每个叶子节点都是黑色的空节点(NIL节点)。

    4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

    5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

    下图中这棵树,就是一颗典型的红黑树:

    *左旋转

    *右旋转

     *自平衡的策略

  • 相关阅读:
    webpack第一节(4)
    webpack第一节(3)
    webpack第一节(2)
    webpack第一节(1)
    node 下载 解压 重命名
    node 文件操作
    js判断设备(转)
    【CSS3】transform-origin以原点进行旋转 (转)
    手机(转)
    mysql最大连接数问题
  • 原文地址:https://www.cnblogs.com/eret9616/p/9326967.html
Copyright © 2011-2022 走看看