Quick actions

cmd+k|ctrl+k

Navigation

Languages

5_15_Arboles_desafio_1

Snippet info

Language

Python

Visibility

public

Author

jorgetoto2006new

Created

2024-11-04T03:12:30.312699Z

Updated

2024-11-04T03:12:30.312699Z

# Definimos la clase Nodo que representa cada nodo del árbol.
# Un nodo tiene un valor y enlaces a su hijo izquierdo y derecho.
class Nodo:
    def __init__(self, valor):
        self.valor = valor  # El valor del nodo (en este caso, un número entero)
        self.izquierdo = None  # Referencia al hijo izquierdo, inicialmente vacío
        self.derecho = None  # Referencia al hijo derecho, inicialmente vacío

# Construimos un árbol binario simple con al menos 3 niveles de profundidad.
# Este es un ejemplo de cómo se arma un árbol:
#         1
#        / \
#       2   3
#      / \ / \
#     4  5 6  7
raiz = Nodo(1)  # Nodo raíz con valor 1
raiz.izquierdo = Nodo(2)  # Hijo izquierdo de la raíz
raiz.derecho = Nodo(3)  # Hijo derecho de la raíz
raiz.izquierdo.izquierdo = Nodo(4)  # Hijo izquierdo del nodo 2
raiz.izquierdo.derecho = Nodo(5)  # Hijo derecho del nodo 2
raiz.derecho.izquierdo = Nodo(6)  # Hijo izquierdo del nodo 3
raiz.derecho.derecho = Nodo(7)  # Hijo derecho del nodo 3

# Implementamos una función para recorrer el árbol en preorden.
# En preorden, imprimimos primero el nodo actual, luego el subárbol izquierdo y después el subárbol derecho.
def preorden(nodo):
    if nodo is not None:  # Verificamos que el nodo no sea vacío
        print(nodo.valor, end=' ')  # Imprimimos el valor del nodo actual
        preorden(nodo.izquierdo)  # Llamamos a la función para recorrer el hijo izquierdo
        preorden(nodo.derecho)  # Llamamos a la función para recorrer el hijo derecho

# Ejecutamos la función preorden para imprimir los valores del árbol.
print("Recorrido en preorden del árbol:")
preorden(raiz)  # Debería imprimir: 1 2 4 5 3 6 7
INFO