Skip to main content

二叉搜索树

二叉搜索树(Binary Search Tree)

二叉搜索树是二叉树的一种,是应用非常广泛的一种二叉树,英文简称为 BST

  • 又被称为:二叉查找树、二叉排序树
  • 任意一个节点的值都大于其左子树所有节点的值
  • 任意一个节点的值都小于其右子树所有节点的值
  • 它的左右子树也是一棵二叉搜索树

二叉搜索树可以大大提高搜索数据的效率

二叉搜索树存储的元素必须具备可比较性

  • 比如 int、double 等
  • 如果是自定义类型,需要指定比较方式
  • 不允许为 null

image-20221220102424710

二叉搜索树的接口设计

int size() // 元素的数量
boolean isEmpty() // 是否为空
void clear() // 清空所有元素
void add(E element) // 添加元素
void remove(E element) // 删除元素
boolean contains(E element) // 是否包含某元素

代码的继承结构

image-20221223102139373

添加节点

image-20221220102737262

根据元素内容获取节点

image-20221220130045882

删除节点

删除节点 – 叶子节点

image-20221220130125380

删除节点 – 度为1的节点

image-20221220130150219

删除节点 – 度为2的节点

image-20221220130208549

作业