Comment B nœuds arbres généralement représentés?
-
19-09-2019 - |
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é?
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>> { ... }