-
-
Save parzibyte/45155d103264c7c310a53ce4a7b6eb53 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Nodo(): | |
dato = None | |
siguiente = None | |
def __init__(self, dato): | |
self.dato = dato | |
self.siguiente = None | |
def agregar_al_final(nodo_inicial, dato): | |
nuevo_nodo = Nodo(dato) | |
if nodo_inicial == None: | |
nodo_inicial = nuevo_nodo | |
return nodo_inicial | |
temporal = nodo_inicial | |
while temporal.siguiente: | |
temporal = temporal.siguiente | |
temporal.siguiente = nuevo_nodo | |
return nodo_inicial | |
def agregar_al_inicio(nodo_inicial, dato): | |
nuevo_nodo = Nodo(dato) | |
nuevo_nodo.siguiente = nodo_inicial | |
return nuevo_nodo | |
def imprimir_lista(nodo): | |
while nodo != None: | |
print(f"Tenemos {nodo.dato}") | |
nodo = nodo.siguiente | |
def obtener_cabeza(nodo_inicial): | |
return nodo_inicial | |
def obtener_cola(nodo_inicial): | |
temporal = nodo_inicial | |
while temporal.siguiente: | |
temporal = temporal.siguiente | |
return temporal | |
def existe(nodo, busqueda): | |
while nodo != None: | |
if nodo.dato == busqueda: | |
return True | |
nodo = nodo.siguiente | |
return False | |
def eliminar(nodo, busqueda): | |
if nodo == None: | |
return | |
if nodo.dato == busqueda: | |
return nodo.siguiente | |
temporal = nodo | |
while temporal.siguiente != None: | |
if temporal.siguiente.dato == busqueda: | |
if temporal.siguiente.siguiente != None: | |
temporal.siguiente = temporal.siguiente.siguiente | |
else: | |
temporal.siguiente = None | |
return nodo | |
temporal = temporal.siguiente | |
return nodo | |
def main(): | |
lista = None | |
lista = agregar_al_final(lista, "Luis") | |
lista = agregar_al_final(lista, "Leon") | |
lista = agregar_al_inicio(lista, "Link") | |
print("Antes de eliminar: ") | |
imprimir_lista(lista) # Link, Luis, Leon | |
lista = eliminar(lista, "Link") | |
print("Después de eliminar: ") | |
imprimir_lista(lista) # Luis, Leon | |
print(existe(lista, "Link")) # False | |
print(existe(lista, "Luis")) # True | |
# obtener_cabeza nos regresa el nodo, pero accedemos al dato para imprimirlo | |
print(obtener_cabeza(lista).dato) # Luis | |
print(obtener_cola(lista).dato) # Leon | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment