Come implementare un elenco collegato in Python?



Questo articolo mostra come creare un elenco collegato in Python con vari metodi per inserire l'aggiornamento e rimuovere gli elementi nell'elenco collegato.

Il linguaggio di programmazione Python è un linguaggio open source con varie implementazioni out-of-the-box che lo rendono unico e più facile da imparare. Sebbene non supporta il concetto di un elenco collegato, esiste un modo per aggirarlo attraverso un'implementazione diversa per ottenere un elenco collegato. In questo articolo, impareremo come creare un elenco collegato in Python. Di seguito sono riportati gli argomenti trattati in questo blog:

Cominciamo!!





Cos'è l'elenco collegato?

L'elenco dei collegamenti è una sequenza di nodi con un tipo di dati simile, ogni nodo contiene un oggetto dati e un puntatore al nodo successivo.

Un elenco collegato è una struttura dati lineare con la raccolta di più nodi. Dove eOgni elemento memorizza i propri dati e un puntatore alla posizione dell'elemento successivo. L'ultimo collegamento in un elenco collegato punta a null, indicando la fine della catena. Un elemento in un elenco collegato è chiamato a nodo . Il primo nodo è chiamato capo .Viene chiamato l'ultimo nodoil coda .
lista collegata - lista collegata in python - edurekaLa libreria Python standard non ha un elenco collegato. Possiamo implementare il concetto di struttura dati dell'elenco di collegamenti utilizzando il concetto di nodi.



php print_r array

Ora che abbiamo appreso cosa è Linked. Quindi passiamo all'implementazione di un elenco collegato.

Implementazione di un elenco collegato

Per creare un elenco collegato, creiamo un oggetto nodo e creiamo un'altra classe per utilizzare questo oggetto nodo.
Codice per la creazione della classe Node.
Il programma precedente crea un elenco collegato con tre elementi di dati.

class Node (object): # Costruttore per inizializzare le variabili di 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 # ottieni il valore successivo def get_next (self): return self.next_node # imposta i dati successivi def set_next (self, new_next): self.next_node = new_next

L'implementazione dell'elenco di collegamenti consiste nelle seguenti funzionalità in un elenco di collegamenti
uno. Inserire : Questo metodo inserirà un nuovo nodo in un elenco collegato.
2. Taglia : Questo metodo restituirà la dimensione dell'elenco collegato.
3. Ricerca : Questo metodo restituirà un nodo contenente i dati, altrimenti genererà un errore
Quattro. Elimina : Questo metodo eliminerà un nodo contenente i dati, altrimenti genererà un errore



Vediamo l'elenco dei metodi di collegamento

Metodo di inizializzazione in un elenco collegato

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

Il metodo Init viene utilizzato per l'inizializzazione di un file classe variabile se l'elenco non ha nodi è impostato su nessuno.

Inserire:

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

Questo metodo di inserimento prende i dati, inizializza un nuovo nodo con i dati forniti e lo aggiunge all'elenco. Tecnicamente puoi inserire un nodo ovunque nell'elenco, ma il modo più semplice per farlo è posizionarlo all'inizio dell'elenco e puntare il nuovo nodo verso il vecchio capo (una specie di spingere gli altri nodi lungo la linea).

Taglia

# Restituisce il numero totale di nodi nell'elenco def size (self): current = self.head count = 0 while current: count + = 1 current = current.get_next () return count

Il metodo delle dimensioni è molto semplice, fondamentalmente conta i nodi finché non riesce più a trovarli e restituisce quanti nodi ha trovato. Il metodo inizia dal nodo principale, viaggia lungo la linea dei nodi fino a raggiungere la fine (la corrente sarà Nessuno quando raggiunge la fine) tenendo traccia di quanti nodi ha visto.

Ricerca

# Restituisce il nodo nell'elenco che ha nodeData, si è verificato un errore se il nodo non è presente def search (self, nodeData): current = self.head isPresent = False while current and isPresent is False: if current.get_data () == nodeData: isPresent = Vero altro: current = current.get_next () se current è None: alza ValueError ('Dati non presenti nella lista') restituisce current

La ricerca è in realtà molto simile alla dimensione, ma invece di attraversare l'intero elenco di nodi controlla ad ogni fermata per vedere se il nodo corrente ha i dati richiesti. In tal caso, restituisce il nodo che contiene quei dati. Se il metodo passa attraverso l'intero elenco ma ancora non ha trovato i dati, genera un errore di valore e notifica all'utente che i dati non sono nell'elenco.

Elimina

# Rimuovi il nodo dall'elenco collegato restituisce un errore se il nodo non è presente def delete (self, nodeData): current = self.head previous = None isPresent = False while current and isPresent is False: if current.get_data () == nodeData: isPresent = Vero altro: precedente = corrente corrente = corrente.get_next () se l'attuale è Nessuno: solleva ValueError ('Dati non presenti nell'elenco') se il precedente è Nessuno: self.head = corrente.get_next () current.get_next ())

Il metodo di eliminazione attraversa l'elenco nello stesso modo della ricerca, ma oltre a tenere traccia del nodo corrente, il metodo di eliminazione ricorda anche che l'ultimo nodo è stato visitato. Quando l'eliminazione arriva finalmente al nodo che vuole eliminare. Rimuove semplicemente quel nodo dalla catena 'scavalcandolo'.

Con questo intendo che quando il metodo di eliminazione raggiunge il nodo che vuole eliminare, guarda l'ultimo nodo che ha visitato (il nodo 'precedente') e reimposta il puntatore del nodo precedente. Piuttosto che puntare al nodo che sarà presto eliminato.

Punterà al nodo successivo in linea. Poiché nessun nodo punta al nodo scadente che viene eliminato, viene effettivamente rimosso dall'elenco!

Questo ci porta alla fine di questo articolo, dove abbiamo imparato come creare un elenco collegato in Python con un'implementazione simile, anche se Python non supporta realmente il concetto di elenco collegato. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

Se hai trovato pertinente questo articolo su 'Elenco collegato in Python', controlla il Una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Siamo qui per aiutarti in ogni fase del tuo viaggio e per elaborare un curriculum progettato per studenti e professionisti che vogliono essere un . Il corso è progettato per darti un vantaggio nella programmazione Python e addestrarti per i concetti di base e avanzati di Python insieme a vari piace

Se incontri delle domande, sentiti libero di porre tutte le tue domande nella sezione commenti di 'Elenco collegato in Python' e il nostro team sarà lieto di rispondere.