Course playlist
线性数据结构 (4课)
队列
链表
向量
简单树 (3课)
树的定义和概念
树的表示和存储
二叉树的定义与性质
二叉树的表示与存储
二叉树的遍历
特殊树 (4课)
完全二叉树的定义与性质
完全二叉树的数组表示法
哈夫曼树,哈夫曼编码
二叉搜索树的定义和构造

左子树所有节点的值均小于根节点的值
右子树所有节点的值均大于根节点的值
左右子树也都是二叉搜索树
     8
    / \
   3   10
  / \    \
 1   6    14
    / \   /
   4   7 13
以根节点8为例,左子树(3,1,6,4,7)的所有值都小于8,右子树(10,14,13)的所有值都大于8。
对其中序遍历:1 -> 3 -> 4 -> 6 -> 7 -> 8 -> 10 -> 13 -> 14,得到一个有序序列。

构造一棵二叉搜索树,就是通过一系列插入操作,将一个数据集合构建成树形结构的过程。

插入操作
插入操作的逻辑遵循二叉搜索树的定义,从根节点开始,递归地找到新节点应该插入的位置。

步骤:


若树为空,则新建节点作为根节点。

将待插入的值与当前节点的值比较。

如果值 小于 当前节点值,则将其插入到左子树。

如果值 大于 当前节点值,则将其插入到右子树。

递归地进行上述过程,直到找到一个空位置并将其插入。

核心优势:利用结构特性,将平均搜索复杂度降至 O(log n),远优于无序数组的 O(n) 和有序数组的 O(log n) 在某些场景下的表现。

高效的平均性能:得益于其“左子树 < 根节点 < 右子树”的结构,每次比较都能排除掉大约一半的候选数据,使得平均搜索路径长度与树的高度成正比,即 O(log n)。

动态数据集的理想选择:它将高效的搜索能力与同样高效的插入、删除操作结合在一起。你不需要为了高效的搜索而忍受低效的数据更新。

算法简单直观:搜索过程自然地对应了“猜数字”的二分策略,易于理解和实现。
1 N个节点的二叉搜索树,其查找的平均时间复杂度为( )。
登录后查看选项
2 二叉搜索树的左右子树也是二叉搜索树。
登录后查看选项
3 二叉搜索树可以是空树(没有任何节点)或者单节点树(只有一个节点),或者多节点。如果是多节点,则左节点的值小于父节点的值,右节点的值大于父节点的值,由此推理,右节点树的值都大于根节点的值,左节点树的值都小于根节点的值。( )
登录后查看选项
4 二叉搜索树的查找操作的时间复杂度是O(N) 。
登录后查看选项
5 在二叉搜索树中查找元素 50 ,从根结点开始:若根值为 60 ,则下一步应去:
登录后查看选项
题目 对/错/率 难度 记录 通过
姓名 分数 提交时间 操作
158 40 2025-10-23 10:10 查看