módulo llist en Python

Hasta hace mucho tiempo, Python no tenía forma de ejecutar la estructura de datos de la lista enlazada. Admite la lista, pero se encontraron muchos problemas al usarlos como un concepto de la lista vinculada, como la lista, que es rígida y no está conectada por punteros, por lo tanto, ocupa un espacio de memoria definido que incluso puede desperdiciarse si la lista no está completamente llena. De hecho, para superar los problemas que posee la lista, la estructura de datos de eliminación de cola de Python también podría emplearse para funcionar como una lista enlazada. Pero todo esto ha sido cubierto gracias a llist .

módulo llist en Python

llist es un módulo de extensión de CPython que proporciona una estructura de lista enlazada básica. Son significativamente más rápidos que quitar la cola e incluso que la lista estándar.

Instalación

Para hacer uso de los beneficios proporcionados por llist, debe instalarse como cualquier otra extensión o módulo de Python, usando pip. El siguiente comando hará el trabajo.

pip install llist

Si no fuera por esto, se puede descargar manualmente desde http://pypi.python.org/pypi , luego descomprima los recursos y compílelos con «python setup.py install». Una vez que el módulo se haya instalado correctamente, solo necesita importar este módulo cuando sea necesario.

Métodos proporcionados

Actualmente, llist proporciona los siguientes dos tipos de listas enlazadas:

  1. lista enlazada individualmente (sllist) : una lista enlazada en la que los Nodes apuntan al Node contiguo.
  2. lista doblemente enlazada (dllist) : una lista enlazada en la que los Nodes apuntan al Node posterior y al anterior.

Este módulo contiene los siguientes objetos:

  • dllist: objeto para implementar una lista doblemente enlazada
  • dllistnode: devuelve un nuevo Node de lista doblemente vinculado, inicializado opcionalmente
  • dllistiterator: un objeto iterador para dllist
  • sllist: objeto para implementar una lista enlazada individualmente
  • sllistnode : un Node de lista enlazado individualmente, inicializado opcionalmente
  • sllistiterator: un objeto iterador para sllist

Los siguientes ejemplos le ayudarán a comprender mejor. Dan ideas básicas sobre la ejecución de los dos tipos de lista soportados por llist:
Ejemplo 1: sllist

# importing packages
import llist
from llist import sllist, sllistnode
  
# creating a linked list
lst = sllist(['first', 'second', 'third'])
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()
  
# adding and inserting values
lst.append('fourth')
node = lst.nodeat(2)
lst.insertafter('fifth', node)
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()
  
# poping a value
# i.e. removing the last entry of the list
lst.pop()
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()
  
# removing a specific element
node = lst.nodeat(1)
lst.remove(node)
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()

Producción:

sllist([first, second, third])
sllistnode(first)
sllistnode(third)
3

sllist([first, second, third, fifth, fourth])
sllistnode(first)
sllistnode(fourth)
5

sllist([first, second, third, fifth])
sllistnode(first)
sllistnode(fifth)
4

sllist([first, third, fifth])
sllistnode(first)
sllistnode(fifth)
3

Ejemplo 2: lista de dll

# importing packages
import llist
from llist import dllist, dllistnode
  
# creating a linked list
lst = dllist(['first', 'second', 'third'])
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()
  
# adding and inserting values
lst.append('fourth')
node = lst.nodeat(2)
lst.extendleft(['fifth', 'sixth'])
new_node = dllistnode('seventh')
ref_node = lst.nodeat(2)
lst.insertnode(new_node, ref_node)
  
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()
  
# poping a value
# i.e. removing the last entry of the list
lst.pop()
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()
  
# removing a specific element
node = lst.nodeat(1)
lst.remove(node)
print(lst)
print(lst.first)
print(lst.last)
print(lst.size)
print()

Producción:

dllist([first, second, third])
dllistnode(first)
dllistnode(third)
3

dllist([sixth, fifth, seventh, first, second, third, fourth])
dllistnode(sixth)
dllistnode(fourth)
7

dllist([sixth, fifth, seventh, first, second, third])
dllistnode(sixth)
dllistnode(third)
6

dllist([sixth, seventh, first, second, third])
dllistnode(sixth)
dllistnode(third)
5

Publicación traducida automáticamente

Artículo escrito por vanshikagoyal43 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 *