Esta es una pregunta de asignación que tengo problemas para redactar una respuesta.Árboles: Listas vinculadas frente a matrices (Eficiencia)
"Supongamos que un árbol puede tener hasta k hijos por nodo. Sea v el número promedio de hijos por nodo. Para qué valor (es) de v es más eficiente (en términos de espacio utilizado) para almacenar el nodos secundarios en una lista vinculada versus almacenamiento en una matriz? ¿Por qué? "
Creo que puedo responder el "¿por qué?" más o menos en inglés sencillo: será más eficiente usar la lista vinculada porque, en lugar de tener un montón de nodos vacíos (es decir, índices vacíos en la matriz si su promedio es menor que el máximo) ocupando memoria, solo se asigna espacio para un nodo en una lista vinculada cuando en realidad está completando un valor.
Así que si tienes un promedio de 6 hijos cuando tu máximo es 200, la matriz creará espacio para los 200 hijos de cada nodo cuando se cree el árbol, pero la lista vinculada solo asignará espacio para el nodos según sea necesario. Entonces, con la lista enlazada, el espacio utilizado será aproximadamente (?) El promedio; con la matriz, espaciado utilizado será el máximo.
... No veo cuándo sería más eficiente usar la matriz. ¿Es esta una pregunta con trampa? ¿Debo tener en cuenta el hecho de que la matriz debe tener un límite en el número total de nodos cuando se crea?
No estoy seguro de lo que quiere decir con la sobrecarga de una lista vinculada. ¿Estás hablando de la memoria necesaria para las referencias? –
@dc: Bueno, ¿cómo se implementan las listas vinculadas? ¿Cuánta memoria se necesita? –