我正在寻找间隔树C#集合类。
我需要能够添加间隔,理想情况是2D,否则我可能会组合两个标准的1D间隔树。
我还需要能够找出与给定间隔重叠的间隔。
我发现了这个intervaltree.codeplex.com但是
此版本没有与下载相关联的内容。
编辑:
答案 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"