Kuinka linkitetty luettelo otetaan käyttöön Pythonissa?



Tässä artikkelissa kerrotaan, miten voit luoda linkitetyn luettelon pythonissa erilaisilla menetelmillä päivityksen lisäämiseksi ja linkitetyn luettelon elementtien poistamiseksi.

Python-ohjelmointikieli on avoimen lähdekoodin kieli, jossa on useita valmiita toteutuksia, mikä tekee siitä ainutlaatuisen ja helpomman oppimisen. Siitä huolimatta ei tue linkitetyn luettelon käsitettä, on olemassa tapa kiertää sitä eri toteutuksella saada linkitetty luettelo. Tässä artikkelissa opitaan, miten voimme luoda linkitetyn luettelon Pythonissa. Seuraavassa on tämän blogin aiheita:

Aloitetaanpa!!





Mikä on linkitetty luettelo?

Linkkiluettelo on solmujen sarja, jolla on samanlainen tietotyyppi, jokainen solmu sisältää yhden dataobjektin ja osoittimen seuraavaan solmuun.

Linkitetty luettelo on lineaarinen tietorakenne, jossa on useita solmuja. Missä each-elementti tallentaa omat tiedot ja osoittimen seuraavan elementin sijaintiin. Linkitetyn luettelon viimeinen linkki osoittaa nollaan, mikä osoittaa ketjun lopun. Linkitetyn luettelon elementtiä kutsutaan a solmu . Ensimmäistä solmua kutsutaan pää .Viimeinen solmu kutsutaan häntä .
linkitetty luettelo - linkitetty luettelo python - edurekassaTavallisessa python-kirjastossa ei ole linkitettyä luetteloa. Voimme toteuttaa linkkiluettelotietorakenteen käsitteen käyttämällä solmujen käsitettä.



Nyt kun olemme oppineet linkitetystä. Joten siirrymme linkitetyn luettelon käyttöönottoon.

Linkitetyn luettelon käyttöönotto

Linkitetyn luettelon luomista varten luomme solmuobjektin ja luomme toisen luokan tätä solmuobjektia varten.
Koodi solmuluokan luomiseen.
Yllä oleva ohjelma luo linkitetyn luettelon, jossa on kolme tietoelementtiä.

luokan solmu (objekti): # Rakentaja aloittamaan luokan muuttujat def __init __ (itse, data = Ei mitään, seuraava_solmu = Ei mitään): itse.data = data itse.seuraava_solmu = seuraava_solmu #määritä data def get_data (itse): palauta itsetiedot # hanki seuraava arvo def get_next (itse): return self.next_node # set next data def set_next (self, new_next): self.next_node = new_next

Linkkiluettelon toteutus koostuu seuraavista linkitetyn luettelon toiminnoista
yksi. Lisää : Tämä menetelmä lisää uuden solmun linkitettyyn luetteloon.
2. Koko : Tämä menetelmä palauttaa linkitetyn luettelon koon.
3. Hae : Tämä menetelmä palauttaa solmun, joka sisältää tiedot, muuten aiheuttaa virheen
Neljä. Poistaa : Tämä menetelmä poistaa tiedot sisältävän solmun, muuten aiheuttaa virheen



Katsotaan linkitettyjen menetelmien luettelon

Init-menetelmä linkitetyssä luettelossa

luokka LinkedList (objekti): def __init __ (itse, pää = ei mitään): itse.pää = pää

Init-menetelmää käytetään a: n alustamiseen luokassa muuttuja, jos luettelossa ei ole solmuja, se on asetettu olemattomaksi.

Lisää:

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

Tämä lisäystapa ottaa datan, alustaa uuden solmun annetuilla tiedoilla ja lisää ne luetteloon. Teknisesti voit lisätä solmun mihin tahansa luetteloon, mutta yksinkertaisin tapa tehdä se on sijoittaa se luettelon kärkeen ja osoittaa uusi solmu vanhaan päähän (tavallaan työntämällä muita solmuja riviä pitkin).

Koko

# Palauttaa solmun kokonaismäärän luettelon def-koossa (itse): current = self.head count = 0 while current: count + = 1 current = current.get_next () return count

Kokomenetelmä on hyvin yksinkertainen, se laskee periaatteessa solmut, kunnes sitä ei enää löydy, ja palauttaa löytämiensä solmujen määrän. Menetelmä alkaa pään solmusta, kulkee solmuriviä pitkin loppuun asti (virta ei ole mitään, kun se saavuttaa lopun) samalla kun seurataan kuinka monta solmua se on nähnyt.

Hae

# Palauttaa solmun luettelossa, jossa on nodeData. Virhe, jos solmu ei ole def-haku (self, nodeData): current = self.head isPresent = False while current and isPresent is False: if current.get_data () == nodeData: isPresent = Tosi muu: current = current.get_next (), jos virta on None: nosta ValueError ('Data not not in list') return current

Haku on oikeastaan ​​hyvin samanlainen kuin koko, mutta sen sijaan, että se kulkisi koko solmujen luettelon läpi, se tarkistaa jokaisessa pysäkissä nähdäksesi, onko nykyisellä solmulla pyydettyjä tietoja. Jos näin on, palauttaa tiedot sisältävän solmun. Jos menetelmä käy läpi koko luettelon, mutta ei silti ole löytänyt tietoja, se herättää arvovirheen ja ilmoittaa käyttäjälle, että tietoja ei ole luettelossa.

Poistaa

kuinka käyttää iteraattoria
# Poista solmu linkitetystä luettelosta palauttaa virheen, jos solmua ei löydy def delete (self, nodeData): current = self.head previous = Ei mitään isPresent = Vääriä, kun nykyinen ja isPresent on väärä: if current.get_data () == nodeData: isPresent = Todellinen muu: edellinen = nykyinen = nykyinen.get_next (), jos virta on Ei mitään: nosta ValueError ('Tietoja ei ole luettelossa'), jos edellinen on Ei mitään: itse.pää = nykyinen. current.get_next ())

Poistomenetelmä kulkee luettelon läpi samalla tavalla kuin haku, mutta nykyisen solmun seuraamisen lisäksi poistomenetelmä muistaa myös viimeisen solmun, jolla vierailtiin. Kun poisto saapuu lopulta solmuun, jonka se haluaa poistaa. Se yksinkertaisesti poistaa kyseisen solmun ketjusta 'hyppimällä' sitä.

Tarkoitan tällä sitä, että kun poistomenetelmä saavuttaa poistettavan solmun, se tarkastelee viimeistä vierailtua solmua ('edellinen' solmu) ja nollaa edellisen solmun osoittimen. Sen sijaan, että osoittaisit pian poistettavaa solmua.

Se osoittaa rivin seuraavaan solmuun. Koska yksikään solmu ei osoita huonoa solmua, jota poistetaan, se poistetaan käytännössä luettelosta!

Tämä tuo meidät tämän artikkelin loppuun, jossa olemme oppineet, miten voimme luoda linkitetyn luettelon pythonissa samanlaisella toteutuksella, vaikka python ei todellakaan tue linkitetyn luettelon käsitettä. Toivon, että olet selvillä kaikesta, mitä sinulle on jaettu tässä opetusohjelmassa.

Jos pidit tämän artikkelin linkitetystä luettelosta Pythonissa, tutustu Luotettu verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, levinnyt ympäri maailmaa.

Olemme täällä auttaaksemme sinua matkasi jokaisessa vaiheessa ja keksimään opetussuunnitelman, joka on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla . Kurssi on suunniteltu antamaan sinulle etumatka Python-ohjelmointiin ja kouluttamaan sinua sekä ydin- että edistyneille Python-käsitteille yhdessä muiden kanssa Kuten

Jos kohtaat kysymyksiä, kysy rohkeasti 'Linked List In Python' -kommenttiosasta, ja tiimimme vastaa mielellään.