¿Cómo implementar una lista vinculada en Python?



Este artículo muestra cómo puede crear una lista vinculada en Python con varios métodos para insertar actualizaciones y eliminar los elementos en la lista vinculada.

El lenguaje de programación Python es un lenguaje de código abierto con varias implementaciones listas para usar que lo hace único y más fácil de aprender. A pesar de que no admite el concepto de lista vinculada, hay una forma de evitarlo mediante una implementación diferente para obtener una lista vinculada. En este artículo, aprenderemos cómo podemos hacer una lista vinculada en Python. Los siguientes son los temas cubiertos en este blog:

¡¡Vamos a empezar!!





¿Qué es la lista vinculada?

La lista de enlaces es una secuencia de nodos que tienen un tipo de datos similar, cada nodo contiene un objeto de datos y un puntero al siguiente nodo.

Una lista vinculada es una estructura de datos lineal con la colección de múltiples nodos. Donde eCada elemento almacena sus propios datos y un puntero a la ubicación del siguiente elemento. El último enlace de una lista vinculada apunta a nulo, lo que indica el final de la cadena. Un elemento en una lista enlazada se llama nodo . El primer nodo se llama cabeza .El último nodo se llamala cola .
lista vinculada - lista vinculada en python - edurekaLa biblioteca de Python estándar no tiene una lista vinculada. Podemos implementar el concepto de estructura de datos de listas de enlaces utilizando el concepto de nodos.



Ahora que aprendimos sobre lo que es Linked. Así que pasemos a implementar una lista vinculada.

Implementar una lista vinculada

Para crear una lista vinculada, creamos un objeto de nodo y creamos otra clase para usar este objeto de nodo.
Código para crear la clase Node.
El programa anterior crea una lista vinculada con tres elementos de datos.

class Node (objeto): # Constructor para iniciar variables de clase def __init __ (self, data = None, next_node = None): self.data = datos self.next_node = next_node #get data def get_data (self): return self.data # obtener el siguiente valor def get_next (self): return self.next_node # set next data def set_next (self, new_next): self.next_node = new_next

La implementación de la lista de enlaces consta de la siguiente funcionalidad en una lista enlazada
1. Insertar : Este método insertará un nuevo nodo en una lista vinculada.
2. Talla : Este método devolverá el tamaño de la lista vinculada.
3. Buscar : Este método devolverá un nodo que contiene los datos, de lo contrario generará un error
4. Eliminar : Este método eliminará un nodo que contiene los datos, de lo contrario generará un error



Veamos la lista de métodos vinculados

Método de inicio en una lista vinculada

class LinkedList (objeto): def __init __ (self, head = None): self.head = head

El método Init se utiliza para la inicialización de un clase variable si la lista no tiene nodos, se establece en ninguno.

Insertar:

def insert (self, data): new_node = Node (data) new_node.set_next (self.head) self.head = new_node

Este método de inserción toma datos, inicializa un nuevo nodo con los datos dados y lo agrega a la lista. Técnicamente, puede insertar un nodo en cualquier lugar de la lista, pero la forma más sencilla de hacerlo es colocarlo al principio de la lista y apuntar el nuevo nodo al antiguo (más o menos empujando los otros nodos hacia abajo).

Talla

# Devuelve el número total de nodos en la lista def size (self): actual = self.head count = 0 while current: count + = 1 current = current.get_next () return count

El método de tamaño es muy simple, básicamente cuenta los nodos hasta que no puede encontrar más y devuelve cuántos nodos encontró. El método comienza en el nodo principal, viaja por la línea de nodos hasta que llega al final (la corriente será Ninguna cuando llegue al final) mientras realiza un seguimiento de cuántos nodos ha visto.

Buscar

# Devuelve el nodo en la lista que tiene nodeData, se produjo un error si el nodo no está presente def search (self, nodeData): current = self.head isPresent = False mientras actual y isPresent es False: si current.get_data () == nodeData: isPresent = Verdadero else: actual = actual.get_next () si actual es Ninguno: aumentar ValueError ('Datos no presentes en la lista') devolver actual

La búsqueda es en realidad muy similar al tamaño, pero en lugar de recorrer toda la lista de nodos, comprueba en cada parada para ver si el nodo actual tiene los datos solicitados. Si es así, devuelve el nodo que contiene esos datos. Si el método recorre toda la lista pero aún no ha encontrado los datos, genera un error de valor y notifica al usuario que los datos no están en la lista.

Eliminar

# Eliminar el nodo de la lista vinculada devuelve un error si el nodo no está presente def eliminar (self, nodeData): actual = self.head anterior = Ninguno isPresent = False mientras actual y isPresent es False: si current.get_data () == nodeData: isPresent = Verdadero else: anterior = actual actual = actual.get_next () si actual es Ninguno: elevar ValueError ('Datos no presentes en la lista') si el anterior es Ninguno: self.head = actual.get_next () else: anterior.set_next ( current.get_next ())

El método de eliminación recorre la lista de la misma manera que lo hace la búsqueda, pero además de realizar un seguimiento del nodo actual, el método de eliminación también recuerda el último nodo visitado. Cuando eliminar finalmente llega al nodo que desea eliminar. Simplemente quita ese nodo de la cadena 'saltando'.

Con esto quiero decir que cuando el método de eliminación llega al nodo que desea eliminar, mira el último nodo que visitó (el nodo 'anterior') y restablece el puntero de ese nodo anterior. En lugar de apuntar al nodo que pronto se eliminará.

Apuntará al siguiente nodo de la línea. Dado que ningún nodo apunta al nodo deficiente que se está eliminando, ¡se elimina efectivamente de la lista!

Esto nos lleva al final de este artículo donde hemos aprendido cómo podemos hacer una lista vinculada en Python con una implementación similar, aunque Python realmente no es compatible con el concepto de lista vinculada. Espero que tengas claro todo lo que se ha compartido contigo en este tutorial.

Si encuentra relevante este artículo sobre 'Lista vinculada en Python', consulte el Una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Estamos aquí para ayudarlo en cada paso de su viaje y crear un plan de estudios diseñado para estudiantes y profesionales que desean ser un . El curso está diseñado para darle una ventaja en la programación de Python y capacitarlo para los conceptos básicos y avanzados de Python junto con varios me gusta

cómo crear un conjunto

Si encuentra alguna pregunta, no dude en hacer todas sus preguntas en la sección de comentarios de 'Lista vinculada en Python' y nuestro equipo estará encantado de responder.