二叉查找树

二叉查找树(英语:Binary Search Tree)Wiki


动画演示:

  • VisuAlgo

特点

  1. 如果任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  2. 如果任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  3. 任意节点的左、右子树也分别为二叉查找树;
  4. 没有键值相等的节点。


api及时间复杂度

api 作用 时间复杂度
insert 插入节点 O(log n) / O(n)
find 查找数据 O(log n) / O(n)
find_next 查找下一个数据 O(log n) / O(n)
range_search 在某范围内查找数据 O(log n) / O(n)
delete 删除数据 O(log n) / O(n)


实现

python: gist link

心得

  • find是bst的核心,因为所有其他的api都可以通过find实现


相关

  • 平衡树

你可能感兴趣的:(二叉查找树)