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?

¿Fue útil?

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>> { ... }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top