Skip to content

Instantly share code, notes, and snippets.

@andresAlvarado
Last active April 3, 2017 01:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save andresAlvarado/eeccbc583b4e5528e48d7758f47548e3 to your computer and use it in GitHub Desktop.
Save andresAlvarado/eeccbc583b4e5528e48d7758f47548e3 to your computer and use it in GitHub Desktop.
class Nodo:
def __init__( self, dato ):
self.dato = dato
self.sig = None
#def asignarDato( self, dato ):
# self.dato = dato
def asignarSig( self, sig ):
self.sig = sig
def obtenerSig( self ):
return self.sig
def obtenerDato( self ):
return self.dato
class ListaEnlazada:
def __init__( self ):
self.cabeza = None
self.cola = None
self.tamanio = 0
def encolar( self, dato ):
nuevoNodo = Nodo( dato )
print 'Encolando: '+str(dato)
if not self.cola:
nuevoNodo.asignarSig( None )
self.cabeza = nuevoNodo
else:
self.cola.asignarSig( nuevoNodo )
self.cola = nuevoNodo
self.tamanio += 1
def desencolar( self ):
if self.cabeza:
print 'Desencolando.'
self.cabeza = self.cabeza.obtenerSig()
self.tamanio -= 1
else:
print 'No existen datos para desencolar.'
def obtenerCabeza( self ):
if self.cabeza:
return self.cabeza.obtenerDato()
def obtenerTamanio( self ):
return self.tamanio
def imprimirLista( self ):
nodo = self.cabeza
print '-->',
while nodo:
print str(nodo.obtenerDato())+' -->',
nodo = nodo.obtenerSig()
print 'Nulo'
miLista = ListaEnlazada()
for i in xrange( 4 ):
miLista.encolar(i)
for i in xrange( 5 ):
print 'Dato en la cabeza: '+str( miLista.obtenerCabeza() )
print 'Tamanio de la Cola: '+str( miLista.obtenerTamanio() )
miLista.imprimirLista()
miLista.desencolar()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment