C#Interval树类

时间:2012-01-07 22:02:48

标签: c# codeplex interval-tree

我正在寻找间隔树C#集合类。

我需要能够添加间隔,理想情况是2D,否则我可能会组合两个标准的1D间隔树。

我还需要能够找出与给定间隔重叠的间隔。

我发现了这个intervaltree.codeplex.com但是

  

此版本没有与下载相关联的内容。

编辑:

继续:C# using others code

5 个答案:

答案 0 :(得分:5)

我刚写了另一个实现,可以在这里找到: https://github.com/mbuchetics/RangeTree

它还带有一个异步版本,它使用任务并行库(TPL)重建树。

答案 1 :(得分:4)

codeplex页面上有一个下载:http://intervaltree.codeplex.com/SourceControl/list/changesets - >右手边 - >下载

答案 2 :(得分:3)

对于未来的访问者,我也编写了一个实现https://github.com/vvondra/Interval-Tree

答案 3 :(得分:2)

您可以找到间隔树的另一个c#实现(基于自平衡avl树)@ http://code.google.com/p/intervaltree/

答案 4 :(得分:0)

另一种实现可以在https://github.com/erdomke/RangeTree找到。与其他实现不同,它的目标是在可能的情况下使用类似于IDictionary<TKey, TValue>的接口。它可以使用如下:

var tree = new RangeTree<int, string>()
{
    { 0, 10, "1" },
    { 20, 30, "2" },
    { 15, 17, "3" },
    { 25, 35, "4" },
};

// Alternatively, use the Add method, for example:
// tree.Add(0, 10, "1");

var results1 = tree[5]; // 1 item: [0 - 10] "1"