Question

Je fais un peu le brossage sur mon arbre B-Tree et 2-3-4 (arbre B avec ordre 4), et je tente de mettre en œuvre ce en C #. Ma question est, étant donné qu'un noeud B-Tree peut contenir N-1 nombre d'articles et N sous-arbres, quelle est la représentation typique pour un de ces nœuds? Est-il un tableau, série de listes liées, ou quelque chose que je ne l'ai pas considéré?

Était-ce utile?

La solution

Pour un arbre 2-3-4, il n'a pas vraiment d'importance. Pour les commandes, vous utiliseriez un tableau trié et recherche binaire. Pour les touches de taille variable comme les chaînes, une structure arborescente pourrait être une bonne idée.

Autres conseils

Ne pas essayer de combiner les sous-arbres et des objets. Vous aurez besoin d ' 2 tableaux ou liste <>.

Si votre commande est fixé i utiliserais 2 tableaux. Dans le cas contraire, un List<ItemClass> et List<SubTree>

Voici un article intéressant sur MSDN sur l'écriture d'un arbre de recherche binaire en C #. Pas exactement la même chose comme un b-arbre, mais vous trouverez peut-être utile. L'auteur utilise dans ce cas, une classe de base de collecte générique:

public class Node<T>
{
   private T data;
   private NodeList<T> neighbors = null;
   ...
}

public class NodeList<T> : Collection<Node<T>> { ... }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top