Com implementar una llista enllaçada a Python?



En aquest article es mostra com podeu crear una llista enllaçada a Python amb diversos mètodes per inserir l’actualització i eliminar els elements de la llista enllaçada.

El llenguatge de programació Python és un llenguatge de codi obert amb diverses implementacions pròpies que el fan únic i més fàcil d’aprendre. Encara que no admet el concepte d'una llista enllaçada, hi ha una manera de solucionar-ho mitjançant una implementació diferent per obtenir una llista enllaçada. En aquest article, aprendrem com podem fer una llista enllaçada a Python. A continuació es detallen els temes tractats en aquest bloc:

Anem a començar!!





Què és la llista enllaçada?

La llista d'enllaços és una seqüència de nodes que tenen un tipus de dades similar, cada node conté un objecte de dades i un punter al següent node.

Una llista enllaçada és una estructura de dades lineal amb la recopilació de múltiples nodes. On eL'element ach emmagatzema les seves pròpies dades i un punter a la ubicació de l'element següent. L'últim enllaç d'una llista enllaçada apunta a nul, indicant el final de la cadena. Un element d’una llista enllaçada s’anomena a node . El primer node es diu cap .Es diu l’últim nodeel cua .
llista enllaçada - llista enllaçada a python - edurekaLa biblioteca estàndard de python no té una llista enllaçada. Podem implementar el concepte d’estructura de dades de la llista d’enllaços mitjançant el concepte de nodes.



Ara que hem conegut què hi ha enllaçat. Passem, doncs, a implementar una llista enllaçada.

Implementació d’una llista enllaçada

Per crear una llista enllaçada, creem un objecte de node i creem una altra classe per utilitzar aquest objecte de node.
Codi per crear la classe Node.
El programa anterior crea una llista enllaçada amb tres elements de dades.

def __init __ (auto) pitó
class Node (object): # Constructor per iniciar les variables de classe def __init __ (self, data = None, next_node = None): self.data = data self.next_node = next_node #get data def get_data (self): return self.data # obtenir el següent valor def get_next (self): retorna self.next_node # set next def def set_next (self, new_next): self.next_node = new_next

La implementació de la llista d’enllaços consisteix en la següent funcionalitat en una llista d’enllaços
1. Insereix : Aquest mètode inserirà un nou node en una llista enllaçada.
2. Mida : Aquest mètode retornarà la mida de la llista enllaçada.
3. Cerca : Aquest mètode retornarà un node que conté les dades, en cas contrari generarà un error
4. Suprimeix : Aquest mètode suprimirà un node que conté les dades, en cas contrari generarà un error



Vegem la llista de Mètodes de enllaços

Mètode d'inici en una llista enllaçada

class LinkedList (object): def __init __ (self, head = Cap): self.head = head

El mètode Init s'utilitza per a la inicialització d'un fitxer classe variable si la llista no té nodes, s'estableix en cap.

Insereix:

inserció per defecte (auto, dades): new_node = Node (data) new_node.set_next (self.head) self.head = new_node

Aquest mètode d’inserció pren dades, inicialitza un nou node amb les dades donades i les afegeix a la llista. Tècnicament es pot inserir un node a qualsevol lloc de la llista, però la manera més senzilla de fer-ho és col·locar-lo al cap de llista i apuntar el nou node cap al cap vell (tipus d’empènyer els altres nodes cap avall de la línia).

Mida

# Retorna el nombre total de nodes a la mida de definició de la llista (auto): actual = auto.compte de cap = 0 mentre que actual: recompte + = 1 actual = actual.get_next () recompte de retorn

El mètode de mida és molt senzill, bàsicament compta nodes fins que ja no pot trobar i retorna quants nodes ha trobat. El mètode comença al node principal, recorre la línia de nodes fins que arriba al final (el corrent serà Cap quan arribi al final) mentre es fa un seguiment de quants nodes ha vist.

Cerca

# Torna el node de la llista que té nodeData, es produeix un error si el node no presenta la cerca de def (auto, nodeData): current = self.head isPresent = False mentre que current i isPresent és False: si current.get_data () == nodeData: isPresent = True else: current = current.get_next () si actual és Cap: augmenta ValueError ('Les dades no estan presents a la llista') retornen actuals

La cerca és molt similar a la mida, però en lloc de recórrer tota la llista de nodes, comprova a cada parada per veure si el node actual té les dades sol·licitades. Si és així, retorna el node que conté aquestes dades. Si el mètode recorre tota la llista però encara no ha trobat les dades, genera un error de valor i notifica a l'usuari que les dades no es troben a la llista.

com utilitzar spyder python

Suprimeix

# Elimina el node de la llista enllaçada retorna l'error si el node no presenta def delete (self, nodeData): current = self.head previous = Cap isPresent = False mentre actual i isPresent és False: si current.get_data () == nodeData: isPresent = True else: anterior = current current = current.get_next () si actual és None: augmenta ValueError ('Dades no presents a la llista') si anterior és None: self.head = current.get_next () else: previous.set_next ( current.get_next ())

El mètode delete recorre la llista de la mateixa manera que ho fa la cerca, però, a més de fer un seguiment del node actual, el mètode delete també recorda que es va visitar l’últim node. Quan finalment l'eliminació arriba al node que vol eliminar. Simplement elimina aquest node de la cadena 'saltant-lo'.

Amb això vull dir que quan el mètode d’eliminació arriba al node que vol suprimir, mira l’últim node que va visitar (el node ‘anterior’) i restableix el punter del node anterior. En lloc d’assenyalar el node que s’eliminarà aviat.

Apuntarà al següent node de la línia. Com que cap node apunta al node pobre que s'està suprimint, s'elimina de la llista.

Això ens porta al final d’aquest article, on hem après com podem fer una llista enllaçada a Python amb una implementació similar, tot i que Python no admet realment el concepte d’una llista enllaçada. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.

Si heu trobat rellevant aquest article a 'Llista enllaçada a Python', consulteu el document Una empresa d’aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

Estem aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser . El curs està dissenyat per donar-vos un avantatge en la programació de Python i formar-vos tant per a conceptes bàsics com per a Python avançats juntament amb diversos M'agrada

Si teniu cap pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Llista enllaçada a Python' i el nostre equip estarà encantat de respondre-us.

missatge emergent de script java