/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Arboles Binarios

 
      Índice del Foro elrincondelc.com -> Java
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Danieldiaz



Registrado: 03 Dic 2010
Mensajes: 4

MensajePublicado: 14/12/2010 9:37 am
Título: Arboles Binarios

Buenas Tardes rincondelc

Podrian ayudarme u orientarme acerca de como hacer una funcion que me muestre si un arbol binario ordenado y equilibrado es tambien completo????

Ya tengo las funciones de ordenado y equilibrado, solo me falta la de verificar si es uno completo, me imagino que el principio de esto tendria que ser el verificar si los elementos del arbol es un numero divisible, sino lo es no podra ser completo, estoy correcto???

Este es uno de mis ejercicios finales, espero puedan ayudarme

Saludos
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7517
Ubicación: Mexico

MensajePublicado: 21/12/2010 9:17 am
Título:

Hola Daniel

No puedo ayudarte con el codigo fuente del programa ya que no manejo este lenguaje y, peor todavia, corro el riesgo de solo hacer el ridiculo ya que no estoy completamente seguro de tu intencion pero tal vez lo que sigue te ayude.

Si con arbol binario, balanceado y completo te refieres a un arbol donde la profundidad de cada una de sus hojas es la misma, por ejemplo:
Código:
     1
    / \
   /   \
  2     3
 / \   / \
4   5 6   7


Una forma de reconocer el hecho es verificando que su numero de nodos mas uno sea igual a una potencia de dos, en seudocodigo:
Código:

Si (numero_de_nodos + 1) == 2^^N Entonces
   Es un arbol completo
Caso contrario
   No lo es


En C una forma de verificar si un entero es potencia de dos es mediante el uso de los operadores a nivel de bits:
Código:
num = num_nodos + 1;

if (num & (num - 1) == 0){
   /* El numero es una potencia de dos */
}else {
   /* No lo es (No es un arbol completo) */
}

Habra que esperar que alguien con un buen manejo de Java nos indique la forma equivalente.

No se si todo esto te sea de utilidad, espero que si.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
      Índice del Foro elrincondelc.com -> Java
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com