¿Cómo están los nodos B del árbol típicamente representados?
-
19-09-2019 - |
Pregunta
He estado haciendo algunas cepillado en mi árbol B y 2-3-4 árbol (árbol B con el fin 4), y yo estoy tratando de implementar esto en C #. Mi pregunta es, dado que un nodo puede B-Tree contiene N-1 Número de artículos y N subárboles, ¿cuál es la representación típica de uno de estos nodos? ¿Es una matriz, serie de listas enlazadas, o algo que no he considerado?
Solución
Para un árbol 2-3-4, que en realidad no importa. Para pedidos grandes, tendrá que utilizar una matriz ordenada y búsqueda binaria. Para las teclas de tamaño variable como cuerdas, un trie podría ser una buena idea.
Otros consejos
No trate de combinar sub-árboles y elementos. Necesitará 2 los arrays o List <> 's.
Si su pedido es fijo, lo usaría 2 arrays. De lo contrario, un List<ItemClass>
y una List<SubTree>
He aquí un interesante artículo en MSDN acerca de cómo escribir un árbol de búsqueda binaria en C #. No es exactamente lo mismo que un árbol B, pero puede que le resulte útil. El autor en este caso utiliza una clase base genérica Colección:
public class Node<T>
{
private T data;
private NodeList<T> neighbors = null;
...
}
public class NodeList<T> : Collection<Node<T>> { ... }