| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
Danieldiaz
Registrado: 03 Dic 2010 Mensajes: 4
| Publicado: 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: 7516 Ubicación: Mexico
| Publicado: 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 | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |