4

我正在寻找一个区间树 C# 集合类。

我需要能够添加间隔,最好是 2D,否则我可以组合两个标准的 1D 间隔树。

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

我找到了这个intervaltree.codeplex.com但是

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

编辑:

在此处继续:使用其他代码的 C#

4

5 回答 5

6

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

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

于 2012-05-29T11:38:45.253 回答
4

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

于 2012-01-07T22:08:53.713 回答
3

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

于 2012-10-25T10:50:07.650 回答
3

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

于 2012-07-24T23:28:20.253 回答
3

另一个实现可以在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"
于 2016-11-14T18:17:32.107 回答