图解--二分查找树
一、定义
1.若它的左子树不为空,则左子树上所有结点的值均小于等于根结点的值;
2.若它的右子树不为空,则右子树上所有结点的值均大于等于根结点的值;
3.它的左右子树均为二分查找树。
二、图解实例
选取一个节点为参照根节点,会发现所有的左侧子节点小于等于参照点,右侧大于等于参照点。
比如根节点9, 9所有的左侧子节点(5、2、7、1、3)都小于等于9.
比如根节点13,13所有的左侧子节点(11、10、12)都大于等于13.
1、查找
查找节点 10:根节点9开始,10>9 右侧,10<13 左侧,10<11 左侧,找到10.
2、插入
插入 子节点 4:4<9 左侧,4<5 左侧,4>2 右侧,4>3 右侧
3、删除
删除节点(因为情况有多种,处理逻辑也是比较麻烦。)
A:删除叶子:好吧就是一个干巴巴的叶子,好办,找到-删除。
删除 7 ,这个7是叶子,那就找到并删除
B:有一个分支的,删除节点,子节点上提。
删除 2节点:找到2 ,删除2
再上提子节点 1
C:两个分支,节点删除,右子树最小的数代替被删除节点,
因为右子树最多有一个右叶子,重新指定引用。
删除 13,13有左右两个分支:
因为 右分支肯定大于左面分支,所以上提右子节点 15
四、其实三已经告诉了我们,会有一种极端情况
二分查找树就是为了提高查询效率,而当前这种和我们写了一堆for循环是一样的。
为了应对这种情况:又出现了平衡二叉树--红黑树。后面会提到。
更多精彩原创心得,请关注微信公众号: 梯形

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?