C.4. Listas Enlazadas Python

   1: def imprimeLista(nodo):
   2:     while nodo:
   3:         print nodo,
   4:         nodo = nodo.siguiente
   5:         print
   6: def imprimeAlReves(lista):
   7:     if lista == None: return
   8:     cabeza = lista
   9:     cola = lista.siguiente
  10:     imprimeAlReves(cola)
  11:     print cabeza,
  12: def imprimeAlRevesBonito(lista) :
  13:     print "[",
  14:     if lista != None :
  15:         cabeza = lista
  16:         cola = lista.siguiente
  17:  
  18: imprimeAlReves(cola)
  19: print cabeza,
  20: print "]",
  21:  
  22: def eliminaSegundo(lista):
  23:     if lista == None: return
  24:         primero = lista
  25:         segundo = lista.siguiente
  26:         primero.siguiente = segundo.siguiente
  27:         segundo.siguiente = None
  28:         return segundo
  29:  
  30: class Nodo:
  31:     def __init__(self, carga=None, siguiente=None):
  32:         self.carga = carga
  33:         self.siguiente = siguiente
  34:  
  35:     def __str__(self):
  36:         return str(self.carga)
  37:  
  38:     def imprimeAlReves(self):
  39:         if self.siguiente != None:
  40:             cola = self.siguiente
  41:             cola.imprimeAlReves()
  42:             print self.carga,
  43:  
  44: class ListaEnlazada :
  45:     def __init__(self) :
  46:         self.longitud = 0
  47:         self.cabeza = None
  48:     def imprimeAlReves(self):
  49:         print "[",
  50:         if self.cabeza != None:
  51:         self.cabeza.imprimeAlReves()
  52:         print "]",
  53:     def agregaPrimero(self, carga):
  54:         nodo = Nodo(carga)
  55:         nodo.siguiente = self.cabeza
  56:         self.cabeza = nodo
  57:         self.longitud = self.longitud + 1 
0