2010-01-22 19 views
6

me han pegado en una pregunta por un tiempo y me preguntaba si alguien me puede apuntar en la dirección correcta:Combinando dos montones binarios perfectos?

montones binarios suponen están representados mediante una representación basada en árbol puntero en lugar de una matriz. Considere el problema de fusionar el almacenamiento binario LHS con RHS. Supongamos que ambos montones son árboles completos completos, que contienen (2^L - 1) y (2^R -1) nodos, respectivamente.
Proporcione dos algoritmos O (log N) para unir los dos montones, uno si L = R y otro si | L - R | = 1.

Este es un problema de tarea, solo debo apuntar en la dirección correcta.

+0

¿El árbol de LHS debe comenzar a la izquierda, o es solo un nombre por conveniencia? – outis

Respuesta

5

Sugerencia para L = R: finge que acaba de eliminar la raíz. Avíseme si necesita más.

+0

¡Muchas gracias! ¡Ahora lo entiendo! – user220755

+0

Este es un buen consejo. Lo que no puedo entender es, ¿cuál es el prof. conseguir con el | L-R | = 1? Parece que el algoritmo que es el resultado de su pista también funcionaría en ese caso. – PeterAllenWebb

+1

Piensa en las propiedades de un montón basado en matrices, y cómo el algoritmo insinuado violaría algunas de estas propiedades si | L-R | = 1. En realidad, no son solo montones basados ​​en arreglos; pensar en la propiedad de forma. – outis