Foros del Web » Programación para mayores de 30 ;) » Java »

Sumar valores de un arbol

Estas en el tema de Sumar valores de un arbol en el foro de Java en Foros del Web. Hola a todos, estoy intentando programar un método en java que sume todos los elementos de un arbol. Ahora mismo tengo lo siguiente: Código: /** ...
  #1 (permalink)  
Antiguo 21/12/2015, 14:47
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 9 años, 5 meses
Puntos: 1
Sumar valores de un arbol

Hola a todos,

estoy intentando programar un método en java que sume todos los elementos de un arbol.

Ahora mismo tengo lo siguiente:

Código:
/**
     * Método que suma el valor de los nodos a partir del nodo pasado por parámetro. Si se especifica el nodo
     * raíz del árbol, entonces se obtiene la suma de todos los nodos del árbol
     * @param n Nodo a partir del cual se suma el subárbol
     * @return La suma de los valores de los nodos del subárbol
     */
    private int getAddition (Node n) {
    	int suma=n.value;
    	if(n.left==null && n.right==null){
    		return suma;
    	}else{
    		if(n.right==null){
    			getAddition(n.left);
    		}else if(n.left==null){
    			getAddition(n.right);
    		}else{
    			getAddition(n.left);
    			getAddition(n.right);
    		}
    	}
    	return suma;
    }
No consigo que sume todos los elementos.

Alguien podría echarme una mano?

La clase nodo es la siguiente:

Código:
private class Node {
        // El valor del nodo
    	private Integer value;
        
    	// Subárboles izquierdo y derecho
    	private Node left, right;

        // Constructor de la clase
    	public Node (Integer value) {
            this.value = value;
        }
    }
Muchas gracias.

Un saludo.
__________________
Going hard for too long... Can't get enough
  #2 (permalink)  
Antiguo 21/12/2015, 14:57
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Sumar valores de un arbol

Buenas,

De un primer vistazo rapido, estas llamando a getAddition recursivamente pero no estas asignado a la suma su resultado.

Deberia ser siempre:

Código Java:
Ver original
  1. if(n.right==null){
  2.         suma += getAddition(n.left);
  3. [...]

etc etc

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 25/12/2015, 15:50
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Sumar valores de un arbol

Hola! Antes de nada felices fiestas a todos!

En cuanto a la respuesta totalmente cierto, menudo cazurro estoy hecho. Lo he modificado y ya está solucionado.

Gracias :)
__________________
Going hard for too long... Can't get enough

Etiquetas: clase, programa, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:01.