当前位置: 首页 > news >正文

数据结构--二叉排序树

一、二叉排序树的定义

  二叉排序树,又称二叉查找树。

  性质: 左子树结点值<根结点值<右子树结点值(进行中序遍历,可以得到一个递增的有序序列)

二、查找操作

  利用二叉排序树的性质,如果树空,或者等于根节点的值,则结束循环,小于则在左子树上查找,大于,在右子树上查找。

  递归特性:

三、插入操作

  若原二叉树为空,则直接插入节点;否则,若关键字k小于根节点,则插入到左子树,若关键字k大于根节点的值,则插入的右子树。如果树中存在相同的值,则插入失败。

四、删除操作

  先搜素找到目标结点:

   1.若被删除的结点时叶子结点,则直接删除们不会破坏二叉排序树的性质。

   2.若结点z只有一棵左子树或右子树,则让z的子树成为z父结点的子树,代替z的位置

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

五、查找效率分析

  查找长度--在查找运算种,需要对比关键字的次数成为查找长度,反映了查找操作时间的复杂度。

总结:

http://www.dtcms.com/a/90971.html

相关文章:

  • 【Spring篇】Spring的生命周期
  • C语言枚举类型详解
  • [特殊字符] 2025蓝桥杯备赛Day11——P11041 [蓝桥杯 2024 省 Java B] 报数游戏
  • Java 列表复制与对象引用
  • Python学习第二十五天
  • 10 个pygame经典小游戏
  • 装饰器模式 (Decorator Pattern)
  • SpringCloud消息总线:Bus事件广播与配置动态刷新
  • 基于硅基流动平台API构建定制化AI服务的实践指南
  • 大数据学习(88)-zookeeper实现的高可用(HA)
  • 【JSqlParser】Java使用JSqlParser解析SQL语句总结
  • 垃圾回收学习
  • “thrust“ has no member “device“
  • 视觉Transformer架构的前沿优化技术与高效部署
  • Linux 驱动总线中的 ACPI 设备匹配机制是怎么回事儿?【最大特点是设备的自动发现和热插拔性能良好】
  • vue 组件开发
  • C++运动控制卡开发实践指南
  • 【pm2运行ts的终极解决方案】使用pm2+ tsx 运行 TypeScript 文件指南
  • 3.25-3 request断言
  • 代码随想录算法训练营第二十天 | 字符串 | 反转字符串、替换空格、翻转字符串里的单词(很多基础方法)和左旋转字符串
  • Windows下docker使用教程
  • 【C++特殊类的设计】
  • 和鲸科技执行总裁殷自强受邀主讲华中附属同济医院大模型应用通识首期课程
  • 美摄科技开启智能汽车车内互动及娱乐解决方案2.0
  • 音乐webpack(通杀webpack-1)
  • 解决在客户端本地无法访问服务器http方式访问麦克风与摄像头的问题
  • Linux如何判断磁盘是否已分区?
  • 基于yolov11的中空圆柱形缺陷检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • (C语言)静态通讯录(正式版)(C语言小项目)
  • HTML5 Geolocation(地理定位)学习笔记