Título: Arbol binario Publicado por: pabelsbf 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; } } Título: Re: Arbol binario Publicado por: kingcreek en 13 Diciembre 2016, 23:40 pm Comparas ambos con el de la izquierda
Código
Título: Re: Arbol binario Publicado por: pabelsbf en 14 Diciembre 2016, 01:20 am Comparas ambos con el de la izquierda Código
Muchas gracias, justo era eso me di cuenta y ya me daba todo bien 👍 |