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:
- lista enlazada individualmente (sllist) : una lista enlazada en la que los Nodes apuntan al Node contiguo.
- 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