C#区间树类
本文关键字:区间 | 更新日期: 2023-09-27 18:19:39
我正在寻找一个区间树C#集合类。
我需要能够添加区间,最好是2D,否则我可能会组合两个标准的1D区间树。
我还需要能够找出与给定区间重叠的区间。
我找到了intervaltree.codeplex.com,但
没有与此版本相关的下载。
编辑:
继续这里:C#使用其他代码
我刚刚写了另一个实现,可以在这里找到:https://github.com/mbuchetics/RangeTree
它还附带了一个异步版本,使用任务并行库(TPL)重建树。
codeplex页面上有一个下载:http://intervaltree.codeplex.com/SourceControl/list/changesets->右侧->下载
您可以为间隔树找到另一个c#实现(基于自平衡avl树)@http://code.google.com/p/intervaltree/
对于未来的访问者,我还编写了一个实现https://github.com/vvondra/Interval-Tree
另一个实现可以在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"