二叉查找树(BST),平衡二叉树(AVL),红黑树之间的区别

本文介绍了二叉查找树(BST)、平衡二叉树(AVL)和红黑树的区别与联系。BST可能存在退化为单链表的问题,AVL树严格平衡但插入删除较耗时,而红黑树则是一种弱平衡的二叉查找树,插入删除操作更为高效。AVL树适合查找频繁的情况,红黑树则在查找、插入、删除间取得平衡。
摘要由CSDN通过智能技术生成

1. 3者的区别与联系

二叉树,二叉查找树(BST),平衡二叉树(AVL),红黑树之间的区别:

根据百度百科给出的定义,它们之间的关系可以用下图表示,平衡二叉树(平衡二叉查找树,AVL)和红黑树都是二叉查找树的一种,区别就是平衡二叉树严格平衡,红黑树是弱平衡。

而AVL树由于实现比较复杂,而且插入和删除性能差,在实际环境下的应用不如红黑树。
在这里插入图片描述

2. 二叉查找树(BST)
2.1 定义

左子树的值小于根节点的值,右子树的值全部大于根节点的值;左右子树分别都是一颗二叉查找树。(递归定义)

3.1.2 缺点

可能退化形成单链表,此时搜索效率降低为 O(n)
在这里插入图片描述
因为这个缺点,优化之后的平衡二叉查找树,解决了这个问题。

3.1.3 插入操作

若原二叉排序树为空,则直接插入结点;否则,若关键字k小于根结点值,则插入到左子树,若关键字k大于根结点值,则插入到右子树。

新插入的阶段一定是叶子结点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mmU4JhIi-1634219113807)(images\image-20211014212809196.png)]

3.1.4 删除操作

(1)被删除的结点为叶子结点,直接删除

(2)被删除的结点只有左或者只有右子树,用其子树顶替其位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ziVJVl0-1634219113844)(images\image-20211014211133182.png)]

(3)若结点z有左、右两棵子树,则令z的直接后继(或直接前驱)替代z,然后从二叉排序树中删去这个直接后继(或直接前驱),这样就转换成了第一或第二种情况。

PS:这里的直接前驱和直接后继概念来自于中序遍历(左根右),因为二叉排序树的中序遍历就是一个递增的序列。

用直接后继替代(直接后继:右子树中最左下的点)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DBW8dQI2-1634219113847)(images\image-20211014211255818.png)]

用直

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值