In [54]:
class ListaSimple:
# Atributo de la Clase
top = None
def __init__(self):
# Inicialización del campo de información y de la referencia
self.dato = None
self.sig = None
def es_vacia(self):
if ListaSimple.top is None:
return True
else:
return False
def insertar_vacia(self, dato):
if self.es_vacia():
ListaSimple.top = ListaSimple()
ListaSimple.dato = dato
print("El nodo insertado es el primero")
else:
print("La lista ya contiene elementos")
def insertar_inicio(self, dato):
"""
Inserta el elemento en el inicio de la lista
"""
if not self.es_vacia():
tmp = ListaSimple()
tmp.dato = dato
tmp.sig = ListaSimple.top
ListaSimple.top = tmp
else:
print("No puede insertarse al final ... lista no contiene nodos")
def insertar_final(self, dato):
"""
Inserta el elemento al final de la lista
"""
if not self.es_vacia():
tmp = ListaSimple()
tmp.dato = dato
auxtop = ListaSimple.top
# Se recorre la lista
while auxtop.sig is not None:
auxtop = auxtop.sig
auxtop.sig = tmp
else:
print("No puede insertarse al final ... lista no contiene nodos")
def insertar_entre_nodos(self, refdato, dato):
# El campo refdato determina el nodo luego del cual debe insertarse
if not self.es_vacia():
tmp = ListaSimple()
tmp.dato = dato
auxtop = ListaSimple.top
# Se recorre la lista
while auxtop.dato is not dato:
auxtop = auxtop.sig
# Si se llega al nodo referencia
if auxtop.dato == refdato:
tmp.sig = auxtop.sig
tmp.sig = auxtop
else:
print("No puede insertarse al final ... lista no contiene nodos")
def presentar(self):
if self.es_vacia():
print("No existen nodos en la lista")
else:
auxtop = ListaSimple.top
while auxtop is not None:
print("[{0}]".format(auxtop.dato), end='->')
auxtop = auxtop.sig
In [56]:
l = ListaSimple()
l.insertar_vacia(6)
l.insertar_inicio(7)
l.insertar_final(13)
l.presentar()