C.7. Árboles en Python

   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:  
   7: def __str__(self) :
   8:     return str(self.carga)
   9:  
  10: def tomaCarga(self): return self.carga
  11: def tomaIzquierda(self): return self.izquierda
  12: def tomaDerecha(self): return self.derecha
  13: def ajustaCarga(self, carga): self.carga = carga
  14: def ajustaIzquierda (self, izquierda): self.left = izquierda
  15: def ajustaDerecha(self, derecha): self.derecha = derecha
  16:  
  17: def total(arbol) :
  18:     if arbol == None : return 0
  19:     return total(arbol.izquierda) + total(arbol.derecha) + arbol.carga
  20:  
  21: def imprimeArbol(arbol):
  22:     if arbol == None: return
  23:     print arbol.carga,
  24:     imprimeArbol(arbol.izquierda)
  25:     imprimeArbol(arbol.derecha)
  26:  
  27: def imprimeArbolPosfijo(arbol):
  28:     if arbol == None: return
  29:     imprimeArbolPosfijo(arbol.izquierda)
  30:     imprimeArbolPosfijo(arbol.derecha)
  31:     print arbol.carga,
  32:  
  33: def imprimeArbolInfijo(arbol):
  34:     if arbol == None: return
  35:     imprimeArbolInfijo(arbol.izquierda)
  36:     print arbol.carga,
  37:     imprimeArbolInfijo(arbol.derecha)
  38:  
  39: def imprimeArbolSangrado(arbol, nivel=0):
  40:     if arbol == None: return
  41:     imprimeArbolSangrado(arbol.derecha, nivel+1)
  42:     print ' '*nivel + str(arbol.carga)
  43:     imprimeArbolSangrado(arbol.izquierda, nivel+1)
0