Crea un código de árboles.
Aquí te muestro un ejemplo de cómo crear un árbol binario en Python utilizando una clase `Node` para representar cada nodo del árbol y una clase `Arbol` para manejar la estructura del árbol. ```python class Node: """Representa un nodo del árbol.""" def __init__(self, valor): self.valor = valor self.izquierda = None self.derecha = None class Arbol: """Representa el árbol binario.""" def __init__(self): self.raiz = None def insertar(self, valor): """Inserta un valor en el árbol.""" if self.raiz is None: self.raiz = Node(valor) else: self._insertar(valor, self.raiz) def _insertar(self, valor, nodo): """Ayuda a insertar un valor en el árbol.""" if valor < nodo.valor: if nodo.izquierda is None: nodo.izquierda = Node(valor) else: self._insertar(valor, nodo.izquierda) else: if nodo.derecha is None: nodo.derecha = Node(valor) else: self._insertar(valor, nodo.derecha) def preorden(self, nodo=None): """Imprime el árbol en preorden.""" if nodo is None: nodo = self.raiz print(nodo.valor, end=" ") if nodo.izquierda: self.preorden(nodo.izquierda) if nodo.derecha: self.preorden(nodo.derecha) def inorden(self, nodo=None): """Imprime el árbol en inorden.""" if nodo is None: nodo = self.raiz if nodo.izquierda: self.inorden(nodo.izquierda) print(nodo.valor, end=" ") if nodo.derecha: self.inorden(nodo.derecha) def postorden(self, nodo=None): """Imprime el árbol en postorden.""" if nodo is None: nodo = self.raiz if nodo.izquierda: self.postorden(nodo.izquierda) if nodo.derecha: self.postorden(nodo.derecha) print(nodo.valor, end=" ") # Ejemplo de uso arbol = Arbol() arbol.insertar(5) arbol.insertar(3) arbol.insertar(7) arbol.insertar(2) arbol.insertar(4) arbol.insertar(6) arbol.insertar(8) print("Preorden: ") arbol.preorden() print("\nInorden: ") arbol.inorden() print("\nPostorden: ") arbol.postorden() ``` Este código crea un árbol binario y permite insertar valores en él. Luego, imprime el árbol en preorden, inorden y postorden. El árbol se representa como sigue: ``` 5 / \ 3 7 / \ / \ 2 4 6 8 ``` El código utiliza tres métodos para imprimir el árbol en diferentes órdenes: * `preorden`: Imprime el valor del nodo actual, luego los valores de sus hijos en preorden. * `inorden`: Imprime los valores de los hijos del nodo actual en inorden, luego el valor del nodo actual. * `postorden`: Imprime los valores de los hijos del nodo actual en postorden, luego el valor del nodo actual.