数据结构—红黑树和二叉搜索树

本文介绍了二叉搜索树、AVL树和红黑树的概念。AVL树是一种严格平衡的二叉搜索树,而红黑树则是牺牲部分平衡以换取更快的插入和删除效率。红黑树的查找、插入和删除操作的时间复杂度均为O(logn)。在实际应用中,红黑树由于其较低的复衡成本,通常比AVL树更为常见。
摘要由CSDN通过智能技术生成

一、树

1. 红黑树与二叉搜索树

1.1 二叉搜索树

1.2.1 定义
  • 如果左子树不为空,则左子树所有结点值都小于根节点的值;
  • 如果右子树不为空,则右子树所有节点值都大于或等于根节点的值;
  • 任意一颗字数也是二叉搜索树。
  • 查找时间复杂度是O(logn),极端降低到O(n)。
1.2.2 平衡二叉搜索树(AVL树)
1. 平衡树(Balance Tree,BT)
  • 任意结点的子树的高度差都小于等于1;
  • 常见的平衡树包括B树(MySQL中的索引)、AVL树等
2. 平衡二叉搜索树-AVL树

注意:AVL树,是两个作者Adelson-Velskii 、Landis的缩写

  • 同时满足二叉搜索树以及平衡树的特点;
  • 可以有效的减少二叉树的深度,从而提高了查询的效率;
  • 严格平衡,代价高。

1.2 红黑树(Red Black Tree, R-B tree)

1.2.1 定义
  • 一种特化的AVL树,在插入和删除时通过特定操作(左旋或右旋)保持二叉查找是的相对平衡,从而获得较高的查找性能。
  • 不是一种严格的AVL树,只是黑色平衡
    • 左子树和右子树的黑色结点数量相等
1.2.2 红黑树特性->黑跟黑叶红不邻,同祖等高只数黑

首先,符合二叉搜索树;

  1. 结点非黑即红;
  2. 根节点是黑色;
  3. 叶子结点是黑色的;
  4. 相邻节点不同为为红色,红色结点的子节点必须是黑色;
  5. 从一个节点到该节点的叶子节点的所有路径上包含的黑节点数量相等。
1.2.3 红黑树查找结点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值