elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Arbol binario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Arbol binario  (Leído 2,001 veces)
pabelsbf

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Arbol binario
« en: 13 Diciembre 2016, 21:58 pm »

Buenas a todos, tengo que hacer un método, que dándole un árbol binario con elementos enteros dentro de los nodos, me devuelva true, si para cada nodo, sus dos hijos (el de la izquierda y la derecha) son mayores o iguales que el nodo, y false en caso contrario.

Ejemplo: nodo= 7 Hijoderecho=7, Hijo izquierdo=8 (devuelve true)
             nodo =7 Hijoderecho=8, Hijo izquierdo=5 (devuelve false)

el código que tengo es este, pero no me llega a funcionar bien, creo que no me recorre el árbol entero, porque me devuelve true en casos que debería dar false.

public class HeapOrderChecker {

public static <E extends Comparable<E>> boolean satisfiesHeapOrderProperty (BinaryTree<E> tree) {

      boolean res=true;

      for(Position<E> w: tree.children(tree.root())){

         if(tree.hasLeft(w) && w.element().compareTo(tree.left(w).element())>0){
               return false;
            }
         

         if(tree.hasRight(w)&& w.element().compareTo(tree.left(w).element())>0){
            
               return false;
            }
      }
      return res;
   }
}


En línea

kingcreek

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Arbol binario
« Respuesta #1 en: 13 Diciembre 2016, 23:40 pm »

Comparas ambos con el de la izquierda

Código
  1. if(tree.hasLeft(w) && w.element().compareTo(tree.left(w).element())>0)
  2.  
  3. // compareTo(tree.left(w)
  4.  


En línea

pabelsbf

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Arbol binario
« Respuesta #2 en: 14 Diciembre 2016, 01:20 am »

Comparas ambos con el de la izquierda

Código
  1. if(tree.hasLeft(w) && w.element().compareTo(tree.left(w).element())>0)
  2.  
  3. // compareTo(tree.left(w)
  4.  

Muchas gracias, justo era eso me di cuenta y ya me daba todo bien 👍
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
arbol binario
Programación C/C++
karmi 2 4,410 Último mensaje 14 Diciembre 2010, 22:08 pm
por ANTÓN RAMIREZ
[C++] Problema con Arbol binario
Programación C/C++
BoniElProgramador 9 2,833 Último mensaje 1 Marzo 2017, 15:18 pm
por BoniElProgramador
Recursividad Arbol Binario y ABB
Programación C/C++
Beginner Web 2 1,718 Último mensaje 5 Enero 2019, 20:31 pm
por Beginner Web
Árbol binario
Java
padiuwu 1 1,881 Último mensaje 19 Marzo 2019, 15:00 pm
por CalgaryCorpus
Eliminación de nodos en un árbol binario ordenado.
Programación C/C++
NextByte 0 2,007 Último mensaje 5 Abril 2019, 18:52 pm
por NextByte
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines