# 二叉搜索树
# 简介
二叉搜索树(Binary Search Tree,BST)是一种特殊的二叉树,它的每个节点都包含一个可比较的键,并且满足特定的排序性质。
# 特性
- 左子树的所有节点的值都小于当前节点的值
- 右子树的所有节点的值都大于当前节点的值
- 左右子树也都是二叉搜索树
# 基本操作
- 查找
- 平均时间复杂度:O(log n)
- 最坏时间复杂度:O(n)
- 插入
- 平均时间复杂度:O(log n)
- 最坏时间复杂度:O(n)
- 删除
- 平均时间复杂度:O(log n)
- 最坏时间复杂度:O(n)
# 优缺点
# 优点
- 支持快速查找、插入和删除操作
- 保持数据的有序性
- 适合范围查询
# 缺点
- 可能退化为链表
- 不是自平衡的
- 性能依赖于输入顺序
# 应用场景
- 数据库索引
- 文件系统
- 符号表