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

【数据结构】搜索二叉树是啥树?有啥用?

搜索二叉树是啥树?有啥用?

如果你写过数据结构,应该对“二叉树”不陌生。它长得像一棵树,每个节点最多有两个孩子。
但“搜索二叉树”(Binary Search Tree,简称 BST)你不一定知道,它在结构上增加了一条关键规则——排序性


1. 搜索二叉树是啥?

一棵二叉树要被称为搜索二叉树,需要满足以下条件:

  • 左子树所有节点的值 < 根节点的值
  • 右子树所有节点的值 > 根节点的值
  • 左右子树本身也必须是搜索二叉树

这样来看aaaaaaaaaaaaaaaaaaa,BST 就把“二叉树”和“有序数组”的特性结合了起来。
直观点看,它是一种“有序的二叉树”,只是数据分布在树的结构中。

举个例子:

        8/   \3     10/ \      \1   6      14/ \    /4   7  13

这棵树就是一棵典型的搜索二叉树。


2. 搜索二叉树能干啥?

它的核心价值在于高效查找

  • 查找一个数
    从根节点开始,比较目标值与当前节点:

    • 如果相等,找到;
    • 如果小于,去左子树;
    • 如果大于,去右子树。
      这样,每次比较都能“砍掉一半”,复杂度 O(log n) (理想情况下)。
  • 插入一个数
    跟查找一样一路比下去,直到找到合适的空位置,把新节点挂上去。

  • 删除一个数
    稍复杂点:

    • 如果是叶子节点,直接删;
    • 如果有一个孩子,拿孩子顶替;
    • 如果有两个孩子,用右子树的最小值或左子树的最大值替换,然后删那个节点。

除此之外,BST 还可以:
中序遍历结果是有序的序列
这意味着,它可以被用来实现排序。


3. 搜索二叉树的问题

BST 看上去很nb,但也有缺陷。
如果插入的数据是有序的,就会退化成一条链表,比如:

1\2\3\4

这时候查找效率会降到 O(n) ,完全失去了“二分查找”的优势。

搜索二叉树的目的一般就是为了排除无序,如果变成有序的,那就没必要使用它了。


4. 怎么解决 BST 的缺陷?

为了解决退化问题,后来出现了平衡二叉树系列,比如:

  • AVL 树:严格保持左右子树高度差不超过 1。
  • 红黑树:宽松一些的平衡条件,换来更快的插入删除。
  • B 树 / B+ 树:用于数据库和文件系统,支持磁盘存储上的高效查找。

所以实际上,现代编程语言的很多库容器,比如:

  • C++ STL 里的 mapset(通常用红黑树实现)
  • Java 的 TreeMapTreeSet
    背后几乎都不是 BST,而是这些改进版的平衡树。(也不是说被淘汰啦)

5. 小结~

搜索二叉树是一种带排序规则的二叉树,能实现高效查找、插入、删除,并且中序遍历自带排序功能。
它是许多复杂数据结构的“雏形”。

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

相关文章:

  • 2025-10-06 Python不基础 15——metaclass
  • 淘宝客必须做网站吗建筑网站排行
  • Python高阶技巧:使用functools.partial减少函数参数个数完全指南
  • 2025年--Lc163--H58.最后一个单词的长度(数组和字符串)--Java版
  • 酒店如何做团购网站app界面设计模板图片
  • 长沙h5网站建设天津网站建站公司
  • 购物网站开发目的网页设计与制作作业成品
  • RNN在自然语言处理中的应用:文本分类实战(代码演示)
  • 嵌入式开发面试八股文详解教程
  • 图形打印方法:从正方形到三角形的编程实践(洛谷P5725)
  • 阿里云对象存储做静态网站成都装修公司哪家口碑最好
  • kanass入门到实战(9) - 如何自定义事项类型,满足个性化需求
  • 企业商城网站建设在哪里买域名
  • 【11408学习记录】考研数学核心突破:线性代数之线性方程组深度解析
  • 舟山网站建设哪家好网站建设者
  • 个人网站备案简介wordpress alipay
  • 王野电动车名风seo软件
  • 彩网站开发天琥设计
  • 大型网站开发工具洛阳小程序开发公司
  • 一个虚拟空间做两个网站中国建设工程造价管理系统
  • 网站开发与网页制作的区别自助企业建站模板
  • 【LeetCode热题100(35/100)】LRU 缓存
  • 长沙网站seo推广中华商标交易网官方网站
  • 如何利用单北斗变形监测提升地质灾害预警能力?
  • 制作广告网站的步骤加强公司网站建设
  • 同字形结构布局网站电子商务网站开发毕业设计
  • 博物建设公司网站网上找家装设计师
  • 建设网站的多少钱定安网站制作
  • MySQL的MHA高可用集群解决方案应用实战(下)
  • 图说刚体运动概念凸显须重新认识测度论和“点无大小,线无宽度”公理