Hogyan lehet megvalósítani a kapcsolt listát a Pythonban?



Ez a cikk bemutatja, hogyan hozhat létre összekapcsolt listát a pythonban különféle módszerekkel a frissítés beszúrására és az összekapcsolt lista elemeinek eltávolítására.

A Python programozási nyelv egy nyílt forráskódú nyelv, különféle házon kívüli megvalósításokkal, amelyek egyedivé és könnyebben megtanulhatóvá teszik. Habár nem támogatja a összekapcsolt lista fogalmát, egy másik megvalósítás révén megkerülhető egy összekapcsolt lista megszerzése. Ebben a cikkben megtudhatjuk, hogyan készíthetünk összekapcsolt listát a Pythonban. A következő témákkal foglalkozik ez a blog:

Kezdjük!!





Mi az a linkelt lista?

A linklista egy hasonló adattípusú csomópontok sorozata, mindegyik csomópont tartalmaz egy adatobjektumot és mutatót a következő csomópontra.

A kapcsolt lista egy lineáris adatszerkezet, több csomópont gyűjtésével. Ahol eAz ach elem tárolja a saját adatait és egy mutatót a következő elem helyére. A linkelt lista utolsó linkje nullára mutat, jelezve a lánc végét. A csatolt listák egyik elemét a-nak nevezzük csomópont . Az első csomópont neve fej .Az utolsó csomópontot hívjuk megaz farok .
linkelt lista - linkelt lista a python - edureka fájlbanA standard python könyvtárnak nincs összekapcsolt listája. A csomópontok koncepciójának felhasználásával megvalósíthatjuk a linklista adatstruktúrájának fogalmát.



Most, hogy megtudtuk, mi kapcsolódik. Térjünk át a Linked list végrehajtására.

Összekapcsolt lista megvalósítása

Összekapcsolt lista létrehozásához létrehozunk egy csomópont objektumot, és létrehozunk egy másik osztályt ennek a csomópont objektumnak a használatához.
Kód a Node osztály létrehozásához.
A fenti program összekapcsolt listát hoz létre három adatelemmel.

class Node (objektum): # Konstruktor az osztályváltozók def __init __ (self, data = None, next_node = None) kezdeményezésére: self.data = data self.next_node = next_node #get data def get_data (self): return self.data # get next value def get_next (self): return self.next_node # set next data def set_next (self, new_next): self.next_node = new_next

A linklista megvalósítása a következő funkciókból áll egy összekapcsolt listában
egy. Helyezze be : Ez a módszer új csomópontot illeszt be egy összekapcsolt listába.
2. Méret : Ez a módszer visszaadja a csatolt lista méretét.
3. Keresés : Ez a módszer visszaadja az adatokat tartalmazó csomópontot, különben hibát fog felvetni
Négy. Töröl : Ez a módszer törli az adatokat tartalmazó csomópontot, különben hibát vet fel



Tekintse meg a Csatolt módszerek listát

Init módszer összekapcsolt listában

class LinkedList (objektum): def __init __ (self, head = Nincs): self.head = head

Init metódust használnak a osztály változó, ha a listának nincs csomópontja, akkor egyikre sem állítja.

Beillesztés:

def insert (self, data): new_node = Csomópont (adatok) new_node.set_next (self.head) self.head = new_node

Ez a beszúrási módszer adatokat vesz fel, egy új csomópontot inicializál a megadott adatokkal, és felveszi a listára. Technikailag egy csomópontot bárhová beilleszthet a listába, de ennek legegyszerűbb módja az, ha a lista élére helyezi, és az új csomópontot a régi fejre irányítja (mintegy lenyomva a többi csomópontot a vonalon).

Méret

# A csomópontok teljes számát adja vissza a def defekt listában (self): current = self.head count = 0 míg current: count + = 1 current = current.get_next () return count

A méretmódszer nagyon egyszerű, alapvetően addig számolja a csomópontokat, amíg már nem találja, és visszaadja, hogy hány csomópontot talált. A módszer a fejcsomópontnál kezdődik, a csomópontok vonalán halad lefelé, amíg el nem éri a végét (az áram a végére érve semmi lesz), miközben nyomon követi, hogy hány csomópontot látott.

Keresés

# Visszaadja a csomópontot a listában, amelynek nodeData van. Hiba történt, ha a csomópont nem található def keresésben (self, nodeData): current = self.head isPresent = Hamis, míg a current és az isPresent hamis: if current.get_data () == nodeData: isPresent = Igaz: current = current.get_next (), ha az áram értéke None: raise ValueError ('A listában nem szerepelnek adatok') return current

A keresés valójában nagyon hasonlít a mérethez, de ahelyett, hogy bejárná a csomópontok teljes listáját, minden megállón ellenőrzi, hogy az aktuális csomópont rendelkezik-e a kért adatokkal. Ha igen, akkor az adatokat tartalmazó csomópontot adja vissza. Ha a módszer végigmegy a teljes listán, de még mindig nem találta meg az adatokat, értékhibát vet fel, és értesíti a felhasználót, hogy az adatok nincsenek a listán.

Töröl

java hogyan lehet kilépni a programból
# A csomópont eltávolítása a csatolt listáról hibát eredményez, ha a csomópont nincs jelen def törlés (self, nodeData): current = self.head előző = Nincs isPresent = Hamis, míg a current és az isPresent értéke Hamis: if current.get_data () == nodeData: isPresent = Igaz más: előző = aktuális aktuális = aktuális.get_next () ha az aktuális Nincs: emelje ValueError ('Az adatok nem szerepelnek a listán'), ha az előző Nincs: self.head = current.get_next () else: előző.set_next ( current.get_next ())

A törlési módszer ugyanúgy járja át a listát, mint a keresés, de az aktuális csomópont nyomon követése mellett a törlési módszer emlékeztet az utoljára meglátogatott csomópontra is. Amikor a törlés végre megérkezik a törölni kívánt csomópontba. Egyszerűen eltávolítja azt a csomópontot a láncról azáltal, hogy „ugrik”.

Ezzel azt akarom mondani, hogy amikor a törlés metódus eléri azt a csomópontot, amelyet törölni akar, akkor megnézi az utoljára látogatott csomópontot (az „előző” csomópontot), és alaphelyzetbe állítja az előző csomópont mutatóját. Ahelyett, hogy a hamarosan törlendő csomópontra mutatna.

A sor következő csomópontjára mutat. Mivel egyetlen csomópont sem mutat a törlésre kerülő szegény csomópontra, gyakorlatilag eltávolításra kerül a listáról!

Ezzel eljutottunk a cikk végéhez, ahol megtanultuk, hogyan készíthetünk összekapcsolt listát a Python-ban hasonló megvalósítással, annak ellenére, hogy a python nem igazán támogatja a kapcsolt lista fogalmát. Remélem tisztában van mindazzal, amit megosztott veled ebben az oktatóanyagban.

Ha relevánsnak találta ezt a cikket a „Csatolt lista a Pythonban” témában, nézze meg a Megbízható online tanulási társaság, amelynek több mint 250 000 elégedett tanulóból álló hálózata van a világon.

Azért vagyunk itt, hogy segítsünk az utazás minden lépésében, és kidolgozzunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik szeretnének . A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Python programozásában, és kiképezze mind az alapvető, mind a haladó Python-koncepciókra a különféle megoldásokkal együtt tetszik

Ha bármilyen kérdése merülne fel, nyugodtan tegye fel minden kérdését a „Linked List In Python” megjegyzések részben, és csapatunk örömmel válaszol.