Kako implementirati povezani seznam v Python?



Ta članek prikazuje, kako lahko v pythonu ustvarite povezani seznam z različnimi metodami za vstavljanje posodobitev in odstranitev elementov na povezanem seznamu.

Programski jezik Python je odprtokodni jezik z različnimi neposrednimi izvedbami, zaradi česar je unikaten in enostaven za učenje. Čeprav ne podpira koncepta povezanega seznama, obstaja način, da se s pomočjo drugačne izvedbe poveže seznam. V tem članku bomo izvedeli, kako lahko v Pythonu sestavimo povezan seznam. V tem blogu so zajete teme:

Začnimo!!





Kaj je povezani seznam?

Seznam povezav je zaporedje vozlišč s podobnim podatkovnim tipom, vsako vozlišče vsebuje en podatkovni objekt in kazalec na naslednje vozlišče.

Povezani seznam je linearna podatkovna struktura z zbirko več vozlišč. Kjer je eelement ach shrani lastne podatke in kazalec na lokacijo naslednjega elementa. Zadnja povezava na povezanem seznamu kaže na nič, kar pomeni konec verige. Element na povezanem seznamu se imenuje a vozlišče . Prvo vozlišče se imenuje glavo .Pokliče se zadnje vozlišče rep .
povezan seznam - povezan seznam v python - edurekaStandardna knjižnica python nima povezanega seznama. Koncept strukture podatkov seznama povezav lahko uporabimo s konceptom vozlišč.



Zdaj, ko smo izvedeli, kaj je povezano. Pojdimo torej k izvajanju povezanega seznama.

Izvajanje povezanega seznama

Za ustvarjanje povezanega seznama izdelamo objekt vozlišča in ustvarimo drug razred, ki bo uporabil ta objekt vozlišča.
Koda za ustvarjanje razreda Node.
Zgornji program ustvari povezan seznam s tremi podatkovnimi elementi.

vozlišče razreda (objekt): # Konstruktor za inicializacijo spremenljivk razreda 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 # get next value def get_next (self): vrni self.next_node # set next data def set_next (self, new_next): self.next_node = new_next

Izvedba seznama povezav je sestavljena iz naslednje funkcionalnosti povezanega seznama
eno. Vstavi : Ta metoda bo v povezavo vključila novo vozlišče.
2. Velikost : Ta metoda vrne velikost povezanega seznama.
3. Iskanje : Ta metoda bo vrnila vozlišče, ki vsebuje podatke, sicer se bo pojavila napaka
Štiri. Izbriši : Ta metoda bo izbrisala vozlišče, ki vsebuje podatke, sicer se bo pojavila napaka



Oglejte si seznam povezanih metod

primer priklica oddaljene metode java

Način vnosa na povezanem seznamu

razred LinkedList (objekt): def __init __ (self, head = None): self.head = head

Metoda Init se uporablja za inicializacijo a razred spremenljivka, če seznam nima vozlišč, je nastavljen na nič.

Vstavi:

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

Ta način vstavljanja zajema podatke, inicializira novo vozlišče z danimi podatki in ga doda na seznam. Tehnično lahko vozlišče vstavite kamor koli na seznam, vendar ga je najpreprosteje postaviti na čelo seznama in novo vozlišče usmeriti na staro glavo (nekako potisnite druga vozlišča navzdol po črti).

Velikost

# Vrne skupno število vozlišč v velikosti def def (self): current = self.head count = 0, medtem ko current: count + = 1 current = current.get_next () return count

Metoda velikosti je zelo preprosta, v bistvu šteje vozlišča, dokler jih ne najde več, in vrne, koliko vozlišč je našla. Metoda se začne na glavnem vozlišču, potuje po črti vozlišč, dokler ne doseže konca (tok bo ob dosegu konca nič), hkrati pa spremlja, koliko vozlišč je videl.

Iskanje

# Vrne vozlišče na seznamu z nodeData, prišlo je do napake, če vozlišče ni prisotno def search (self, nodeData): current = self.head isPresent = False while current in isPresent je False: if current.get_data () == nodeData: isPresent = Res je sicer: current = current.get_next (), če je current None: dvignite ValueError ('Podatki niso na seznamu') vrni tok

Iskanje je pravzaprav zelo podobno velikosti, vendar namesto da bi prečkal celoten seznam vozlišč, na vsakem postanku preveri, ali ima trenutno vozlišče zahtevane podatke. V tem primeru vrne vozlišče, ki vsebuje te podatke. Če metoda gre skozi celoten seznam, vendar še vedno ni našla podatkov, povzroči napako z vrednostjo in uporabnika obvesti, da podatkov ni na seznamu.

Izbriši

# Odstranite vozlišče s povezanega seznama vrne napako, če vozlišče ni prisotno def delete (self, nodeData): current = self.head previous = Noben jePresent = False, medtem ko je current in isPresent False: če current.get_data () == nodeData: isPresent = True else: prejšnji = trenutni tok = current.get_next (), če je tok None: dvignite ValueError ('Podatki niso na seznamu'), če je prejšnji None: self.head = current.get_next () else: previous.set_next ( current.get_next ())

Metoda brisanja prečka seznam na enak način kot iskalno poizvedbo, vendar metoda brisanja poleg sledenja trenutnemu vozlišču zapomni tudi zadnje obiskano vozlišče. Ko delete na koncu prispe na vozlišče, ga želi izbrisati. To vozlišče preprosto odstrani iz verige, tako da ga 'preskoči'.

S tem mislim, da ko metoda brisanja doseže vozlišče, ki ga želi izbrisati, pogleda zadnje vozlišče, ki ga je obiskala ('prejšnje' vozlišče), in ponastavi kazalec prejšnjega vozlišča. Namesto da bi kazal na kmalu izbrisano vozlišče.

Kazal bo na naslednje vozlišče v vrsti. Ker nobeno vozlišče ne kaže na slabo vozlišče, ki se briše, je dejansko odstranjeno s seznama!

To nas pripelje do konca tega članka, kjer smo se naučili, kako lahko v pythonu naredimo povezan seznam s podobno izvedbo, čeprav python v resnici ne podpira koncepta povezanega seznama. Upam, da ste seznanjeni z vsem, kar je bilo z vami razdeljeno v tej vadnici.

kakšnih je 6 načinov uporabe te ključne besede?

Če se vam zdi članek o »Povezanem seznamu v Pythonu« ustrezen, si oglejte Zaupanja vredno spletno učno podjetje z mrežo več kot 250.000 zadovoljnih učencev se širi po vsem svetu.

Tu smo, da vam pomagamo pri vsakem koraku na poti in pripravimo učni načrt, ki je zasnovan za študente in strokovnjake, ki želijo biti . Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Python in vas usposobi za temeljne in napredne koncepte Pythona ter različne všeč

Če naletite na kakršna koli vprašanja, vas prosimo, da vsa vprašanja postavite v oddelku za komentarje »Povezani seznam v Pythonu« in naša ekipa vam bo z veseljem odgovorila.