区間木C#コレクションクラスを探しています。
間隔、理想的には2Dを追加できる必要があります。そうしないと、2つの標準的な1D間隔ツリーを組み合わせることができます。
また、特定の間隔と重なる間隔を見つける必要があります。
このintervaltree.codeplex.comを見つけましたが、
このリリースに関連するダウンロードはありません。
編集:
ここに続く:他のコードを使用したC#
区間木C#コレクションクラスを探しています。
間隔、理想的には2Dを追加できる必要があります。そうしないと、2つの標準的な1D間隔ツリーを組み合わせることができます。
また、特定の間隔と重なる間隔を見つける必要があります。
このintervaltree.codeplex.comを見つけましたが、
このリリースに関連するダウンロードはありません。
編集:
ここに続く:他のコードを使用したC#
ここにある別の実装を作成しました: https ://github.com/mbuchetics/RangeTree
また、タスク並列ライブラリ(TPL)を使用してツリーを再構築する非同期バージョンも付属しています。
codeplexページにダウンロードがあります:http://intervaltree.codeplex.com/SourceControl/list/changesets- >右側->ダウンロード
区間木(自己平衡AVL木に基づく)の別のc#実装を@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"