5_16_Algoritmos_fundamentales_desafio_5

Run Settings
LanguagePython
Language Version
Run Command
# Clase Nodo para representar cada estudiante con su promedio class Nodo: def __init__(self, nombre, promedio): self.nombre = nombre self.promedio = promedio self.izq = None self.der = None # Función para insertar un nuevo estudiante en el árbol def insertar_nodo(raiz, nombre, promedio): # Si el árbol está vacío, crea un nuevo nodo if raiz is None: return Nodo(nombre, promedio) # Si el promedio es menor, insertarlo en el subárbol izquierdo if promedio < raiz.promedio: raiz.izq = insertar_nodo(raiz.izq, nombre, promedio) # Si el promedio es mayor o igual, insertarlo en el subárbol derecho else: raiz.der = insertar_nodo(raiz.der, nombre, promedio) return raiz # Función para realizar un recorrido en inorden def recorrido_inorden(nodo): if nodo: # Primero recorre el subárbol izquierdo recorrido_inorden(nodo.izq) # Luego procesa el nodo actual print(f"{nodo.nombre}: {nodo.promedio}") # Finalmente recorre el subárbol derecho recorrido_inorden(nodo.der) # Lista de estudiantes con sus promedios estudiantes = [ ("Ana", 85), ("Carlos", 92), ("Elena", 88), ("Jorge", 79), ("Luis", 95), ("María", 82), ] # Construcción del árbol binario de búsqueda raiz = None for nombre, promedio in estudiantes: raiz = insertar_nodo(raiz, nombre, promedio) # Mostrar los estudiantes en orden ascendente de promedio print("Estudiantes en orden ascendente por promedio:") recorrido_inorden(raiz)
Editor Settings
Theme
Key bindings
Full width
Lines