5_15_Arboles_desafio_3

Run Settings
LanguagePython
Language Version
Run Command
# 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 postorden y encontrar el valor máximo. def postorden_max(nodo): if nodo is None: # Caso base: si el nodo es nulo, devolvemos un valor muy bajo. return float('-inf') # Recorrido en postorden: primero el subárbol izquierdo, luego el derecho, y luego el nodo actual. max_izquierda = postorden_max(nodo.izquierdo) max_derecha = postorden_max(nodo.derecho) max_actual = nodo.valor # Devolvemos el máximo entre los tres valores. return max(max_izquierda, max_derecha, max_actual) # Llamamos a la función y mostramos el resultado. valor_maximo = postorden_max(raiz) print("El valor máximo en el árbol es:", valor_maximo) # Debería imprimir: 7
Editor Settings
Theme
Key bindings
Full width
Lines