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

2
demandé sur Community 2012-01-08 02:02:47

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

4
répondu ChrisWue 2012-01-07 22:08:53

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).

5
répondu slurmomatic 2012-05-29 11:38:45

pour les futurs visiteurs, j'ai aussi écrit une implémentation https://github.com/vvondra/Interval-Tree

3
répondu vvondra 2012-10-25 10:50:07

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/

2
répondu cos 2012-07-24 23:28:20

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"
0
répondu erdomke 2016-11-14 18:45:24