# Clase Nodo simple, según lo visto en el documento
class Nodo:
def __init__(self, valor):
self.izq = None
self.der = None
self.valor = valor
# Crear un árbol con grados, limitándonos a un árbol binario simple
# Ejemplo para tres niveles (se podría extender manualmente para otros grados)
raiz = Nodo("Grado 12: Estudiante A, Estudiante B")
raiz.izq = Nodo("Grado 11: Estudiante C, Estudiante D")
raiz.der = Nodo("Grado 10: Estudiante E, Estudiante F")
raiz.izq.izq = Nodo("Grado 9: Estudiante G, Estudiante H")
# Función de recorrido en preorden, tal como se presenta en el documento
def preorden(nodo):
if nodo:
print(nodo.valor) # Procesa el nodo actual (grado y estudiantes)
preorden(nodo.izq) # Recorre el hijo izquierdo
preorden(nodo.der) # Recorre el hijo derecho
# Ejecutar el recorrido en preorden
preorden(raiz)