二叉查找树

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

</br>

动画演示:

特点

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

</br>

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)

</br>

实现

python: gist link

心得

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

</br>

相关

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 定义 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有...
    None_Ling阅读 666评论 0 1
  • 数据结构与算法--二叉查找树 上节中学习了基于链表的顺序查找和有序数组的二分查找,其中前者在插入删除时更有优势,而...
    sunhaiyu阅读 1,932评论 0 9
  • 最近在闲看博客时看到一篇专门写红黑树的实现原理,以Java的TreeMap为例讲解,写的很不错,仔细看下来发现很多...
    locoder阅读 3,805评论 0 11
  • 定义 二叉查找树,也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:s...
    zxcvbnmzsedr阅读 529评论 0 1
  • 拿到组件的节点 通过ref属性,然后调用React.findDOMNode("ref_name"); 可控组件如果...
    耳_总阅读 1,098评论 1 0