二叉搜索树

1.概念

-二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:

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

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

-它的左右子树也分别为二叉搜索树

如下图为一棵搜索二叉树

利用二叉搜索树可以快速查找到某个数据,将查找数据与根节点做比较,然后确定其在左子树还是右子树,再查找。但若根节点为一组数据中的最大值或最小值,二叉搜索树就会变成一个链表,查找时间复杂度为(O)。

2.搜索二叉树的操作及其实现

2.1查找

a、从根开始查找,比根小往左子树走,比根大往右子树走,相等则停止查找

b、最多查找树的高度次,走到空还没找到则这个值不存在

2.2插入

a、若树为空,则将root指向插入的节点

b、不为空按照二叉树性质插入

2.3删除

首先查找该元素,查找到的节点有以下4种情况,并且其可能为左孩子也可能为右孩子

a、该节点无孩子节点(将其父节点指向空,删除该节点)

b、该节点有左孩子,右孩子为空(将其父节点指向其左孩子,删除该节点)

c、该节点左孩子为空,有右孩子(将其父节点指向其右孩子,删除该节点)

d、该节点既有左孩子又有右孩子(用左子树最大值或右子树最小值替代该节点的值,删除对应用于替代的节点)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值