Lista vinculada usando la biblioteca dstructure en Python

Dstructure es una biblioteca de Python para crear estructuras de datos como lista enlazada , pila , cola , mapa hash, árbol, etc. Una lista enlazada es una estructura de datos lineal, en la que los elementos no se almacenan en ubicaciones de memoria contiguas. Los elementos de una lista vinculada se vinculan mediante punteros como se muestra en la siguiente imagen:

pip install dstructure

Veamos cómo crear diferentes tipos de listas enlazadas utilizando esta biblioteca.

1. Lista de enlaces individuales

Las listas enlazadas individualmente contienen Nodes que tienen un campo de datos así como un campo ‘siguiente’, que apunta al siguiente Node en una línea de Nodes. Las operaciones que se pueden realizar en listas enlazadas individualmente incluyen inserción, eliminación y recorrido.

Python3

from dstructure.ll.SLL import SLL
  
obj = SLL()
obj.insert(10)  # insert 10 in linked list
obj.insert(20)  # insert 20 in linked list
obj.insert(30)  # insert 30 in linked list
obj.insert(40)  # insert 40 in linked list
obj.insert(50)  # insert 50 in linked list
obj.insert(60)  # insert 60 in linked list
obj.delete_f()  # delete first node in linked list
obj.delete_l()  # delete last node in linked list
obj.delete(20)  # delete the node which we pass and return True otherwise False
obj.getnodes()  # return all the node in linked list in list.
obj.print()       # print all the in this format 10 -> 30 -> 40

Producción:

[30,40,50]
30 -> 40 -> 50

2. Lista doblemente enlazada.

La lista doblemente enlazada es un tipo de lista enlazada en la que cada Node, además de almacenar sus datos, tiene dos enlaces. El primer enlace apunta al Node anterior de la lista y el segundo enlace apunta al siguiente Node de la lista.

Python3

from dstructure.ll.DLL import DLL
  
obj = DLL()
obj.insert(10)  # insert 10 in linked list
obj.insert(20)  # insert 20 in linked list
obj.insert(30)  # insert 30 in linked list
obj.insert(40)  # insert 40 in linked list
obj.delete_f()  # delete first node in linked list
obj.delete_l()  # delete last node in linked list
obj.delete(20)  # delete the node which we pass and return True otherwise False
obj.getnodes()  # return all the node in linked list in list.
obj.print()       # print all the in this format 10 <-> 30 <-> 40

Producción:

10 <-> 30 <-> 40

3.Lista enlazada circular única.

En una lista enlazada individualmente, para acceder a cualquier Node de la lista enlazada, comenzamos a atravesar desde el primer Node. Si estamos en cualquier Node en el medio de la lista, entonces no es posible acceder a los Nodes que preceden al Node dado. Este problema se puede resolver alterando ligeramente la estructura de la lista de enlaces individuales. En una lista enlazada individualmente, la siguiente parte (puntero al siguiente Node) es NULL, si utilizamos este enlace para apuntar al primer Node, podemos llegar a los Nodes anteriores.

Python3

from dstructure.ll.SCLL import SCLL
  
obj = SCLL()
obj.insert(10)  # insert 10 in linked list
obj.insert(20)  # insert 20 in linked list
obj.insert(30)  # insert 30 in linked list
obj.insert(40)  # insert 40 in linked list
obj.delete_f()  # delete first node in linked list
obj.delete_l()  # delete last node in linked list
obj.delete(20)  # delete the node which we pass and return True otherwise False
obj.getnodes()  # return all the node in linked list in list.
obj.print()       # print all the in this format 10 -> 30 -> 40

Producción:

10 -> 30 -> 40

4. Lista enlazada doblemente circular.

La lista circular doblemente enlazada tiene propiedades tanto de lista doblemente enlazada como de lista circular enlazada en la que dos elementos consecutivos están enlazados o conectados por el puntero anterior y siguiente y el último Node apunta al primer Node por el puntero siguiente y también el primer Node apunta al último Node por el puntero anterior.

Python3

from dstructure.ll.DCLL import DCLL
  
obj = DCLL()
obj.insert(10)  # insert 10 in linked list
obj.insert(20)  # insert 20 in linked list
obj.insert(30)  # insert 30 in linked list
obj.insert(40)  # insert 40 in linked list
obj.delete_f()  # delete first node in linked list
obj.delete_l()  # delete last node in linked list
obj.delete(20)  # delete the node which we pass and return True otherwise False
obj.getnodes()  # return all the node in linked list in list.
obj.print()       # print all the in this format 10 <-> 30 <-> 40

Producción:

10 <-> 30 <-> 40

Publicación traducida automáticamente

Artículo escrito por vivekpisal12345 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *