Java集合13 - 二叉搜索树、平衡二叉树、红黑树特点总结

1.二叉搜索树(Binary Search Tree)

       二叉搜索树:又称为二叉排序树, 属于树的一种, 通过二叉树将数据组织起来, 树的每个节点都包含了健值key、数据值data、左子节点指针、右子节点指针。其中健值key是最核心的部分, 它的值决定了树的组织形状; 数据值data是该节点对应的数据。

       特点:

    (1)左右子树也分别是二叉搜索树。

    (2)左子树的所有节点key值都小于它的根节点的key值。

    (3)右子树的所有节点key值都大于他的根节点的key值。

    (4)二叉搜索树可以为一棵空树。

2.AVL树(Balanced binary search tree)

       AVL树:平衡二叉树,也称平衡二叉搜索树。本质也是一棵二叉搜索树,不同的是他通过一定机制能保证二叉搜索树的平衡,平衡的二叉搜索树的查询效率更高。

       特点:

    (1)AVL树是一棵二叉搜索树。

    (2)AVL树的左右子节点也是AVL树。

    (3)AVL树拥有二叉搜索树的所有基本特点。

    (4)每个节点的左右子节点的高度之差的绝对值最多为1,即平衡因子为范围为[-1,1]

3.红黑树(Red-Black Tree)

       红黑(Red-black) 树:是一种自平衡二叉查找树,它与AVL树类似, 都在插入和删除操作时能通过旋转操作保持二叉查找树的平衡, 以便能获得高效的查找性能。它可以在O(logn) 时间内做查找, 插入和删除等操作。对于AVL树来说, 红黑树牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作, 整体来说性能要优于AVL树。

       特点: 

    (1)节点是红色或黑色。

    (2)根节点是黑色。

    (3)每个叶节点(NIL节点) 是黑色的。

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

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

    (6)最长路径不超过最短路径的2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值