【发布时间】:2019-02-28 17:13:03
【问题描述】:
是否有一个balanced BST 结构也可以跟踪每个节点中的子树大小?
在Java 中,TreeMap 是一棵红黑树,但不提供每个节点的子树大小。
以前,我确实写过一些可以跟踪每个节点的子树大小的 BST,但它并不平衡。
问题是:
- 是否可以实现这样的树,同时保持的效率(
O(lg(n))用于基本操作)? - 如果是,那么是否有任何第三方库提供这样的实现?
Javaimpl 很棒,但其他语言 (例如c、go) 也会有所帮助。
顺便说一句:
- 应在每个节点中跟踪子树的大小。
这样就可以在不遍历子树的情况下获得大小。
可能的应用:
- 跟踪项目的排名,其值(排名所依赖的)可能会即时更改。
【问题讨论】:
标签: algorithm data-structures tree binary-search-tree