使用子树大小扩展Java TreeSet

时间:2012-11-24 11:48:23

标签: java treeset

我想将Java TreeSet扩展为Order-Statistics Tree。因此,我的想法是,我将子树大小存储在每个节点中,并操纵add()remove()方法s.t.子树大小也会更新。

我知道有一些数据结构(也在Java中)已经实现了这一点,但我的问题是,是否有可能以某种方式扩展TreeSet类,只要我修改了这个属性就会存储和更新数据结构。

1 个答案:

答案 0 :(得分:0)

如果查看source code,则TreeSet

private transient NavigableMap<E,Object> m;

您肯定能够实施addaddAllremove等等,但TreeSet的方法通常只调用基础地图,即{{ 1}},因此您的实现无法访问。看起来好像是Order-Statistic-Tree can have a different order than a normal TreeMap,这似乎无法通过扩展TreeSet来实现。

使用其他数据结构

您应该能够在TreeMap上建立数据结构,据称TreeSet基于该provides guaranteed log(n) time cost for the containsKey, get, put and remove operations。它

http://www.javawebdevelop.com/1389653/