二叉搜索树

本文介绍了二叉搜索树(二叉排序树)的概念、构建过程、特性以及查找和删除节点的操作。在二叉搜索树中,左子树的值小于根节点,右子树的值大于根节点,这使得中序遍历得到升序序列。查找和删除节点遵循特定规则,确保了操作的时间复杂度为O(logn)。
摘要由CSDN通过智能技术生成

        二叉搜索树也叫二叉排序树,是直接在树上面进行排序。

        1、什么是二叉搜索树(二叉排序树)

        我们直接看它的性质:

若它的左子树不为空,则左子树上所有结点的值都小于它根节点的值。

若它的右子树不为空,则右子树上所有结点的值都大于它根节点的值。

它的左右子树又各自为二叉排序树。

        显然,二叉搜索树与二叉树一样,也是通过递归定义的,因此,它的操作也是基于递归的方式处理的。

        

        2、构建二叉搜索树

        首先,假设我们有一下数据:8  3  10  1  6  14  4  7  13


首先,将8作为根节点
插入3,由于3小于8,作为8的左子树
插入10,由于10大于8,作为8的右子树
插入1,由于1小于8,进入左子树3,1又小于3,则1为3的左子树
插入6,由于6小于8,进入左子树3,6又大于3,则6为3的右子树
插入14,由于14大于8,进入右子树10,14又大于10,则14为10的右子树
插入4,由于4小于8,进入左子树3,4又大于3,进入右子树6,4还小于6,则4为6的左子树
插入7,由于7小于8,进入左子树3,7又大于3,进入右子树6,7还大于于6,则7为6的右子树
插入13,由于13大于8,进入右子树10,又13大于10,进入右子树14,13小于14,则13为14的左子树

        最终结果如下: 

 

        由此可以看出:

如果左子树为空,就将小于根结点的值放入左子树。

如果右子树为空,就将大于根节点的值放入右子树。

如果不为空,就一直向下搜索,直到搜索到空结点。 

这里问题就来了:那么如果key = 根节点的值呢? 这个问题是不考虑的,如名字所说,二叉搜索树,是在该树中搜索是否有某一个值,那么只要有一个存在即可,不需要重复出现

        实现代码如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YangZ123123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值