Quick actions

cmd+k|ctrl+k

Navigation

Languages

5_15_Arboles_desafio_2

Snippet info

Language

Python

Visibility

public

Author

jorgetoto2006new

Created

2024-11-04T03:13:05.730588Z

Updated

2024-11-04T03:13:05.730588Z

# Definimos la clase Nodo que representa cada nodo del árbol.
class Nodo:
    def __init__(self, valor):
        self.valor = valor
        self.izquierdo = None
        self.derecho = None

# Construimos un árbol binario con números enteros en los nodos.
# Ejemplo de árbol:
#         1
#        / \
#       2   3
#      / \ / \
#     4  5 6  7
raiz = Nodo(1)
raiz.izquierdo = Nodo(2)
raiz.derecho = Nodo(3)
raiz.izquierdo.izquierdo = Nodo(4)
raiz.izquierdo.derecho = Nodo(5)
raiz.derecho.izquierdo = Nodo(6)
raiz.derecho.derecho = Nodo(7)

# Implementamos la función para recorrer el árbol en inorden y calcular la suma de los nodos.
def inorden_sumar(nodo):
    if nodo is None:  # Caso base: si el nodo es nulo, no sumamos nada
        return 0
    
    # Recorrido en inorden: sumamos primero el subárbol izquierdo,
    # luego el valor del nodo actual, y finalmente el subárbol derecho.
    suma_izquierda = inorden_sumar(nodo.izquierdo)
    suma_nodo_actual = nodo.valor
    suma_derecha = inorden_sumar(nodo.derecho)
    
    # Sumamos las partes y devolvemos el resultado.
    return suma_izquierda + suma_nodo_actual + suma_derecha

# Llamamos a la función y mostramos el resultado.
suma_total = inorden_sumar(raiz)
print("La suma de todos los nodos del árbol es:", suma_total)  # Debería imprimir: 28
INFO