es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contar los nodos que son mayores que todos sus hijos.

Tengo que hacer un programa que cuente los nodos mayores que sus hijos sin incluir los nodos hoja, por ejemplo:

4 Para este árbol, la solución sería 4 ya que es mayor que su hijo 3 pero
\ no se cuenta 3
3

Esta es mi aproximación:

// Result2 es una clase que almacena un valor T (información del nodo) y n (contador) para
// contar los nodos que son mayores que sus hijos, este es un método en la clase del
// nodo que es una clase genérica de nodos binarios para árboles (parámetros izquierdo, derecho e información)

public Result2 countBigger()
{
Result2 resultado = new Result2();
resultado.info = this.info;

if (this.isLeaf()) 
{
    resultado.n = 0;
}
else 
{
    Result2<T> resultL = new Result2<T>();
    Result2<T> resultR = new Result2<T>();
    if (this.hasLeft()) 
    {
        resultL = this.left.countBigger();
    }
    else 
    {
        resultL.info = this.info;
    }
    if (this.hasRight()) 
    {
        resultR = this.right.countBigger();
    }
    else 
    {
        resultR.info = this.info;
    }
    if (resultado.info.compareTo(resultL.info) > 0 & resultado.info.compareTo(resultR.info) > 0) 
    {
        resultado.n++;
    }
    resultado.n = resultado.n + resultL.n + resultR.n;
}
return resultado;

}

Pero no puedo ver el error.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sería útil si pudieras proporcionar algunos comentarios sobre mi enfoque.

    Parece que tienes un buen enfoque para resolver este problema. Has creado una clase Result2 para almacenar el valor del nodo y un contador para contar los nodos que son más grandes que sus hijos. También has creado un método countBigger() para recorrer el árbol y comparar el valor del nodo con sus hijos izquierdo y derecho.

    Si el valor del nodo es mayor que el de ambos hijos, se incrementa el contador. Luego se devuelve el contador con el valor del nodo.

    Sería útil agregar algunas comprobaciones adicionales para asegurarse de que el árbol sea válido, como verificar si los hijos izquierdo y derecho no son null antes de comparar sus valores. Además, sería útil agregar algunas instrucciones de registro o depuración para ayudarlo a identificar posibles problemas.

Comments are closed.