算法导论二叉搜索树笔记

什么是二叉搜索树

1.二叉搜索树的性质:某个节点的左孩子及其子节点的值都不大于该节点,右孩子及其子节点的值都不小于该节点
2.可以用中序遍历输入二叉搜索树的有序序列
3.可以证明遍历二叉搜索树需要 θ(n) 时间

查询二叉搜索树

1.在高度为 h 的二叉搜索树上,所有动态元素集合的查询操作都可以在 O(h) 时间内完成

插入与删除

1.插入操作的思路是从跟节点相比较一直向下寻找到某个叶子节点,然后插入到该叶子节点的位置,可以在 O(h) 时间内完成
2.删除操作比较复杂,要考虑四种情况
· 要删除的节点没有左右子树
· 有左子树或者右子树
· 左右子树都存在,且该节点的后继是该节点的右孩子
· 左右子树都存在,且该节点的后继不是该节点的右孩子(为右孩子的某个没有左孩子的孩子节点,有点绕,不用在意,这是后继的特性)
3.删除操作也可以在 O(h) 时间内完成

随机构建二叉搜索树

1.随机构建二叉搜索树,是 n 个元素以随机的顺序插入一个空树而构建成的二叉搜索树
2.可以证明随机构建的二叉搜索树高度的期望为 O(lgn)

你可能感兴趣的:(算法导论二叉搜索树笔记)