Kā ieviest saistīto sarakstu Python?



Šajā rakstā parādīts, kā jūs varat izveidot saistītu sarakstu pitonā, izmantojot dažādas metodes, lai ievietotu atjauninājumu un noņemtu saistītā saraksta elementus.

Python programmēšanas valoda ir atvērtā pirmkoda valoda ar dažādām ieviešanas iespējām, kas padara to unikālu un vieglāk apgūstamu. Lai gan neatbalsta saistītā saraksta jēdzienu, ir iespējams to apiet, izmantojot citu ieviešanu, lai iegūtu saistītu sarakstu. Šajā rakstā mēs uzzināsim, kā mēs varam izveidot saistītu sarakstu Python. Šajā emuārā apskatītas šādas tēmas:

Sāksim!!





kas ir java

Kas ir sasaistītais saraksts?

Saites saraksts ir mezglu secība ar līdzīgu datu tipu, katrā mezglā ir viens datu objekts un rādītājs uz nākamo mezglu.

Saistītais saraksts ir lineāra datu struktūra ar vairāku mezglu kolekciju. Kur each elements glabā savus datus un rādītāju uz nākamā elementa atrašanās vietu. Saistītā saraksta pēdējā saite norāda uz nulli, norādot ķēdes beigas. Saistītā saraksta elementu sauc par a mezgls . Pirmo mezglu sauc par galva .Tiek izsaukts pēdējais mezgls asti .
Saistīts saraksts - saistīts saraksts pitonā -Standarta pitona bibliotēkā nav saistītu sarakstu. Saites saraksta datu struktūras jēdzienu mēs varam realizēt, izmantojot mezglu jēdzienu.



Tagad, kad mēs uzzinājām par to, kas ir saistīts. Pārejam pie Saistītā saraksta ieviešanas.

Saistītā saraksta ieviešana

Saistītā saraksta izveidei mēs izveidojam mezgla objektu un izveidojam citu klasi šī mezgla objekta izmantošanai.
Kods Node klases izveidei.
Iepriekš minētā programma izveido saistītu sarakstu ar trim datu elementiem.

klases mezgls (objekts): # Konstruktors, lai iniciētu klases mainīgos 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 # iegūt nākamo vērtību def get_next (self): return self.next_node # set next data def set_next (self, new_next): self.next_node = new_next

Saites saraksta ieviešana sastāv no šādas funkcionalitātes saistītajā sarakstā
viens. Ievietojiet : Šī metode piesaistītajā sarakstā ievietos jaunu mezglu.
2. Izmērs : Šī metode atgriezīs saistītā saraksta lielumu.
3. Meklēt : Šī metode atgriezīs mezglu, kurā ir dati, pretējā gadījumā radīsies kļūda
Četri. Dzēst : Šī metode izdzēsīs mezglu, kurā ir dati, pretējā gadījumā radīsies kļūda



Ļauj redzēt sarakstu Saistītās metodes

Init metode saistītajā sarakstā

klase LinkedList (objekts): def __init __ (self, head = None): self.head = head

A inicializēšanai tiek izmantota Init metode klasē mainīgais, ja sarakstam nav mezglu, tas nav iestatīts.

Ievietot:

def ieliktnis (pats, dati): new_node = mezgls (dati) new_node.set_next (self.head) self.head = new_node

Šī ievietošanas metode ņem datus, inicializē jaunu mezglu ar dotajiem datiem un pievieno tos sarakstam. Tehniski mezglu var ievietot jebkurā saraksta vietā, taču vienkāršākais veids, kā to izdarīt, ir ievietot to saraksta galvgalī un virzīt jauno mezglu uz veco galvu (tā, it kā pārējie mezgli tiktu virzīti uz leju).

Izmērs

# Atgriež kopējo mezglu skaitu saraksta def izmērā (self): current = self.head count = 0, kamēr current: count + = 1 current = current.get_next () return count

Izmēru metode ir ļoti vienkārša, tā pamatā skaita mezglus, līdz vairs nevar atrast, un atgriež atrasto mezglu skaitu. Metode sākas no galvas mezgla, virzās pa mezglu līniju, līdz tā sasniedz beigas (kad tā sasniegs galu, strāva nebūs Neviena), vienlaikus sekojot, cik daudz mezglu tā ir redzējusi.

Meklēt

# Atgriež mezglu sarakstā, kurā ir nodeData, radās kļūda, ja mezglā nav def meklēšanas (self, nodeData): current = self.head isPresent = False while current and isPresent is False: if current.get_data () == nodeData: isPresent = Patiesais cits: pašreizējais = current.get_next (), ja pašreizējais nav None: paaugstiniet ValueError ('Dati nav sarakstā') atgriešanās strāva

Meklēšana faktiski ir ļoti līdzīga izmēram, bet tā vietā, lai šķērsotu visu mezglu sarakstu, tā pārbauda katrā pieturā, lai redzētu, vai pašreizējam mezglam ir pieprasītie dati. Ja tā, atgriež mezglu, kurā atrodas šie dati. Ja metode iet cauri visam sarakstam, bet joprojām nav atradusi datus, tā rada vērtības kļūdu un paziņo lietotājam, ka dati nav sarakstā.

Dzēst

# Noņemiet mezglu no saistītā saraksta atgriež kļūdu, ja mezglā nav def delete (self, nodeData): current = self.head previous = Neviens isPresent = False, kamēr current un isPresent ir False: if current.get_data () == nodeData: isPresent = Patiesais cits: iepriekšējais = pašreizējais = pašreizējais.get_next (), ja pašreizējais nav None: paaugstiniet ValueError ('Dati nav sarakstā'), ja iepriekšējais nav None: self.head = current.get_next () else: previous.set_next ( current.get_next ())

Dzēšanas metode šķērso sarakstu tāpat kā meklēšana, taču papildus pašreizējā mezgla izsekošanai dzēšanas metode atceras arī pēdējo apmeklēto mezglu. Kad izdzēšana beidzot nonāk tajā mezglā, kuru vēlas izdzēst. Tas vienkārši noņem šo mezglu no ķēdes, to “izlecot”.

kā izveidot java pakotni

Ar to es domāju, ka tad, kad dzēšanas metode sasniedz mezglu, kuru vēlas dzēst, tā aplūko pēdējo apmeklēto mezglu (‘iepriekšējo’ mezglu) un atiestata šī iepriekšējā mezgla rādītāju. Nevis norāda uz drīzumā dzēšamo mezglu.

Tas norādīs uz nākamo mezglu rindā. Tā kā neviens mezgls nenorāda uz nabadzīgo mezglu, kas tiek dzēsts, tas tiek faktiski noņemts no saraksta!

Tas noved mūs pie šī raksta beigām, kur mēs esam iemācījušies, kā mēs varam izveidot saistītu sarakstu pitonā ar līdzīgu ieviešanu, kaut arī pitons īsti neatbalsta saistītā saraksta jēdzienu. Es ceru, ka jums ir skaidrs viss, kas ar jums ir kopīgots šajā apmācībā.

Ja jums šis raksts ir bijis saistīts ar “Saistīto sarakstu Python”, pārbaudiet Uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē.

Mēs esam šeit, lai palīdzētu jums ik uz soļa jūsu ceļojumā un izdomātu mācību programmu, kas paredzēta studentiem un profesionāļiem, kuri vēlas būt . Kurss ir paredzēts, lai dotu jums sākumu Python programmēšanā un apmācītu gan pamata, gan uzlabotas Python koncepcijas kopā ar dažādām patīk

Ja rodas kādi jautājumi, uzdodiet visus jautājumus komentāru sadaļā “Saistītais saraksts Python”, un mūsu komanda ar prieku atbildēs.