Classe d'arbre D'intervalle
je suis à la recherche d'un arbre d'intervalle C# Classe de collecte.
j'ai besoin de pouvoir ajouter des intervalles, idealy 2D, sinon je pourrais peut-être combiner deux arbres d'intervalle standard 1D.
j'ai aussi besoin de savoir quels intervalles chevauchent un intervalle donné.
j'ai trouvé ce intervaltree.codeplex.com mais
il n'y a aucun téléchargement associé à cette publier.
edit:
Continuer ici: C# à l'aide d'autres code
5 réponses
il y a un téléchargement sur la page codeplex: http://intervaltree.codeplex.com/SourceControl/list/changesets - > côté droit -> télécharger
je viens d'écrire une autre implémentation qui se trouve ici: https://github.com/mbuchetics/RangeTree
il est également livré avec une version asynchrone qui reconstruit l'arbre en utilisant la bibliothèque parallèle des tâches (TPL).
pour les futurs visiteurs, j'ai aussi écrit une implémentation https://github.com/vvondra/Interval-Tree
vous pouvez trouver une autre implémentation de c# pour un arbre d'intervalle (basé sur un arbre avl auto-équilibrant) @ http://code.google.com/p/intervaltree/
encore une autre implémentation peut être trouvée à https://github.com/erdomke/RangeTree . Contrairement à d'autres implémentations, il vise à avoir une interface similaire à IDictionary<TKey, TValue>
dans la mesure du possible. Il peut être utilisé comme suit:
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"