20.1. Crear árboles

El proceso de montar un árbol es similar al proceso de montar una lista enlazada.
Cada invocación del constructor crea un solo nodo.

   1: class Arbol:
   2:     def __init__(self, carga, izquierda=None, derecha=None):
   3:         self.carga = carga
   4:         self.izquierda = izquierda
   5:         self.derecha = derecha
   6:     def __str__(self):
   7:         return str(self.carga)

 


La carga puede ser de cualquier tipo, pero los parámetros izquierda y derecha
deben ser arboles.Tanto izquierda como derecha son opcionales; el valor por
omisión es None.


Para imprimir un nodo, simplemente imprimimos la carga.
Una forma de construir un árbol es del fondo hacia arriba.


Asigne primero los nodos hijos:




   1: izquierda = Arbol(2)
   2: derecha = Arbol(3)


 


Luego cree el nodo padre y vincúlelo a los hijos:



   1: arbol = Arbol(1, izquierda, derecha);

 


Podemos escribir este código mas concisamente anidando las invocaciones al
constructor:




   1: >>> arbol = Arbol(1, Arbol(2), Arbol(3))

 


En cualquier caso, el resultado es el árbol del principio del capítulo.

0