Cum se implementează o listă legată în Python?



Acest articol arată cum puteți crea o listă legată în python cu diferite metode pentru a insera actualizarea și a elimina elementele din lista legată.

Limbajul de programare Python este un limbaj open-source cu diferite implementări care nu fac decât să-l facă, care îl face unic și mai ușor de învățat. Cu toate că nu acceptă conceptul de listă legată, există o cale în jurul acesteia printr-o implementare diferită de a obține o listă legată. În acest articol, vom afla cum putem crea o listă legată în Python. Următoarele sunt subiectele tratate în acest blog:

Sa incepem!!





Ce este Lista conectată?

Lista de legături este o secvență de noduri cu un tip de date similar, fiecare nod conține un obiect de date și un indicator către următorul nod.

O listă legată este o structură de date liniară cu colectarea mai multor noduri. Unde eelementul ach stochează propriile date și un pointer către locația elementului următor. Ultima verigă dintr-o listă legată indică nul, indicând sfârșitul lanțului. Un element dintr-o listă legată se numește a nodul . Primul nod se numește cap .Se numește ultimul nod coadă .
listă legată - listă legată în python - edurekaBiblioteca standard Python nu are o listă legată. Putem implementa conceptul de structură a datelor listei de linkuri utilizând conceptul de noduri.



Acum, că am aflat despre ceea ce este legat. Așadar, să trecem la implementarea unei liste conectate.

Implementarea unei liste conectate

Pentru crearea unei liste conectate, creăm un obiect nod și creăm o altă clasă pentru a utiliza acest obiect nod.
Cod pentru crearea clasei Node.
Programul de mai sus creează o listă legată cu trei elemente de date.

java convertește dublu în întreg
class Node (object): # Constructor pentru inițializarea variabilelor de clasă def __init __ (self, data = None, next_node = None): self.data = data self.next_node = next_node #get data def get_data (self): returnează self.data # obține următoarea valoare def get_next (self): returnează self.next_node # set next data def set_next (self, new_next): self.next_node = new_next

Implementarea listei de linkuri constă din următoarele funcționalități dintr-o listă de linkuri
unu. Introduce : Această metodă va introduce un nou nod într-o listă legată.
2. mărimea : Această metodă va returna dimensiunea listei conectate.
3. Căutare : Această metodă va returna un nod care conține datele, altfel va genera o eroare
Patru. Șterge : Această metodă va șterge un nod care conține datele, altfel va genera o eroare



Să vedem lista Metode de conectare

Metoda Init într-o listă legată

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

Metoda Init este utilizată pentru inițializarea unui clasă variabilă dacă lista nu are noduri este setată la none.

Introduce:

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

Această metodă de inserare preia date, inițializează un nou nod cu datele date și le adaugă în listă. Din punct de vedere tehnic, puteți introduce un nod oriunde în listă, dar cel mai simplu mod de a face acest lucru este să îl așezați în capul listei și să îndreptați noul nod către capul vechi (un fel de a împinge celelalte noduri în jos pe linie).

mărimea

# Returnează numărul total de noduri din dimensiunea definiției listei (auto): curent = auto.contare de cap = 0 în timp ce curent: număr + = 1 curent = curent.get_next () număr de returnări

Metoda de dimensiune este foarte simplă, practic numără noduri până nu mai găsește și returnează câte noduri a găsit. Metoda începe de la nodul principal, parcurge linia de noduri până ajunge la sfârșit (curentul va fi Niciunul când ajunge la sfârșit) în timp ce ține evidența numărului de noduri pe care le-a văzut.

Căutare

# Returnează nodul din listă cu nodeData, a apărut o eroare dacă nodul nu prezintă căutare def (self, nodeData): current = self.head isPresent = False în timp ce curent și isPresent este False: dacă current.get_data () == nodeData: isPresent = Adevărat altceva: current = current.get_next () dacă curentul este None: raise ValueError („Datele nu sunt prezente în listă”) returnează curentul

Căutarea este de fapt foarte asemănătoare cu dimensiunea, dar în loc să parcurgă întreaga listă de noduri, verifică la fiecare oprire pentru a vedea dacă nodul curent are datele solicitate. Dacă da, returnează nodul care deține aceste date. Dacă metoda parcurge întreaga listă, dar încă nu a găsit datele, generează o eroare de valoare și notifică utilizatorul că datele nu se află în listă.

testarea bazată pe date în seleniu

Șterge

# Eliminați nodul din lista legată returnează eroare dacă nodul nu este prezent ștergeți definiția (auto, nodeData): current = self.head previous = Nici unul isPresent = Fals în timp ce curent și isPresent este Fals: dacă current.get_data () == nodeData: isPresent = Adevărat altceva: precedent = curent curent = curent.get_next () dacă curent este Nici unul: ridicați ValueError („Datele nu sunt prezente în listă”) dacă precedent este Nici unul: self.head = curent.get_next () else: anterior.set_next current.get_next ())

Metoda de ștergere parcurge lista în același mod în care o face căutarea, dar, pe lângă faptul că ține evidența nodului curent, metoda de ștergere își amintește, de asemenea, că ultimul nod a fost vizitat. Când ștergerea ajunge în sfârșit la nod, dorește să o șteargă. Pur și simplu îndepărtează acel nod din lanț prin „săritura” acestuia.

Prin aceasta vreau să spun că atunci când metoda de ștergere ajunge la nodul pe care dorește să îl șteargă, se uită la ultimul nod pe care l-a vizitat (nodul „anterior”) și resetează indicatorul acelui nod anterior. Mai degrabă decât să arate spre nodul care va fi șters curând.

Acesta va indica următorul nod din linie. Deoarece niciun nod nu indică nodul sărac care este șters, acesta este eliminat efectiv din listă!

Acest lucru ne duce la sfârșitul acestui articol, unde am aflat cum putem crea o listă legată în python cu o implementare similară, chiar dacă python nu acceptă cu adevărat conceptul de listă legată. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol în „Lista conectată în Python”, consultați O companie de învățare online de încredere, cu o rețea de peste 250.000 de cursanți mulțumiți, răspândită pe tot globul.

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un . Cursul este conceput pentru a vă oferi un început avansat în programarea Python și pentru a vă instrui atât pentru conceptele Python de bază, cât și pentru cele avansate, împreună cu diverse ca

Dacă întâmpinați orice întrebare, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Listă legată în Python”, iar echipa noastră va răspunde cu plăcere.

algoritm de planificare round robin în c