Како имплементирати повезану листу у Питхон?



Овај чланак показује како можете да направите повезану листу у питхону помоћу различитих метода за уметање ажурирања и уклањање елемената са повезане листе.

Програмски језик Питхон је језик отвореног кода са разним имплементацијама изван оквира што га чини јединственим и лакшим за учење. Иако не подржава концепт повезане листе, постоји начин да се то заобиђе кроз другачију примену како би се добила повезана листа. У овом чланку ћемо научити како можемо да направимо повезану листу у Питхону. Следе теме обрађене на овом блогу:

Почнимо!!





Шта је повезана листа?

Листа веза је низ чворова који имају сличан тип података, сваки чвор садржи један објекат података и показивач на следећи чвор.

Повезана листа је линеарна структура података са колекцијом више чворова. Где еацх елемент чува сопствене податке и показивач на локацију следећег елемента. Последња карика на повезаној листи показује на нулу, што указује на крај ланца. Елемент на повезаној листи назива се а чвор . Први чвор се назива глава .Позива се последњи чвортхе Реп .
повезана листа - повезана листа у питхон - едурекаСтандардна библиотека питхон нема повезану листу. Концепт структуре података листе веза можемо применити помоћу концепта чворова.



Сад кад смо сазнали шта је повезано. Дакле, пређимо на примену повезане листе.

Примена повезане листе

За креирање повезане листе креирамо објект чвора и креирамо другу класу која ће користити овај чвор објекат.
Код за стварање класе Ноде.
Горњи програм креира повезану листу са три елемента података.

цласс Ноде (објецт): # Конструктор за иницијализацију променљивих класе деф __инит __ (селф, дата = Ноне, нект_ноде = Ноне): селф.дата = дата селф.нект_ноде = нект_ноде #гет дата деф гет_дата (селф): ретурн селф.дата # добити следећу вредност деф гет_нект (селф): ретурн селф.нект_ноде # сет нект дата деф сет_нект (селф, нев_нект): селф.нект_ноде = нев_нект

Имплементација листе веза састоји се од следеће функционалности повезане листе
један. Уметни : Овај метод ће уметнути нови чвор у повезану листу.
2 Величина : Ова метода враћа величину повезане листе.
3. Претрага : Ова метода ће вратити чвор који садржи податке, у супротном ће се појавити грешка
Четири. Избриши : Ова метода ће избрисати чвор који садржи податке, у супротном ће се појавити грешка



Погледајмо Методе повезане листе

Инит метода у повезаној листи

класа ЛинкедЛист (објект): деф __инит __ (селф, хеад = Ноне): селф.хеад = хеад

Инит метода се користи за иницијализацију а класа променљива ако листа нема чворове поставља се на ноне.

Уметни:

деф инсерт (селф, дата): нев_ноде = Ноде (дата) нев_ноде.сет_нект (селф.хеад) селф.хеад = нев_ноде

Овај метод уметања узима податке, иницијализује нови чвор са датим подацима и додаје га на листу. Технички чвор можете уметнути било где на листу, али најједноставнији начин да то урадите је да га поставите на чело листе и усмерите нови чвор на стару главу (некако гурајући остале чворове низ линију).

Величина

# Враћа укупан број чворова у величини деф деф (селф): цуррент = селф.хеад цоунт = 0 док је цуррент: цоунт + = 1 цуррент = цуррент.гет_нект () ретурн цоунт

Метода величине је врло једноставна, у основи броји чворове док више не може да их пронађе и враћа колико је чворова пронашла. Метода започиње на главном чвору, путује низ чворова све док не стигне на крај (тренутна ће бити Ништа када дође до краја), водећи притом рачуна колико је чворова видела.

Претрага

# Враћа чвор на листи који има нодеДата, дошло је до грешке ако чвор није присутан деф сеарцх (селф, нодеДата): цуррент = селф.хеад исПресент = Фалсе вхиле цуррент и исПресент је Фалсе: иф цуррент.гет_дата () == нодеДата: исПресент = Тачно остало: цуррент = цуррент.гет_нект () ако је цуррент Ноне: подићи ВалуеЕррор ('Подаци нису присутни на листи') ретурн цуррент

Претрага је заправо врло слична величини, али уместо да пређе целу листу чворова, на сваком заустављању проверава да ли тренутни чвор има тражене податке. Ако је тако, враћа чвор који садржи те податке. Ако метода пролази кроз целу листу, али још увек није пронашла податке, покреће грешку вредности и обавештава корисника да података нема на листи.

Избриши

# Уклони чвор са повезане листе враћа грешку ако чвор није присутан деф делете (селф, нодеДата): цуррент = селф.хеад превиоус = Ноне исПресент = Фалсе вхиле цуррент и исПресент је Фалсе: иф цуррент.гет_дата () == нодеДата: исПресент = Труе труе: превиоус = цуррент цуррент = цуррент.гет_нект () ако је цуррент Ноне: подићи ВалуеЕррор ('Подаци нису присутни на листи') ако је превиоус Ноне: селф.хеад = цуррент.гет_нект () елсе: превиоус.сет_нект ( цуррент.гет_нект ())

Метода брисања прелази листу на исти начин као и претрага, али поред праћења тренутног чвора, метода брисања памти и последњи посећени чвор. Када делете коначно стигне на чвор, он жели да га избрише. Једноставно уклања тај чвор из ланца тако што га „прескаче“.

Под тим мислим да када метода брисања дође до чвора који жели да избрише, гледа последњи чвор који је посетио (’претходни’ чвор) и ресетује показивач тог претходног чвора. Уместо да покаже на чвор који ће се ускоро избрисати.

Показаће на следећи чвор у реду. Будући да ниједан чвор не показује лош чвор који се брише, он се ефикасно уклања са листе!

Ово нас доводи до краја овог чланка, где смо научили како можемо направити повезану листу у питхону са сличном имплементацијом, иако питхон заправо не подржава концепт повезане листе. Надам се да вам је јасно све што је са вама подељено у овом упутству.

Ако сматрате да је овај чланак о „Повезаној листи у Питхону“ релевантан, погледајте Поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширена је широм света.

Овде смо да вам помогнемо у сваком кораку на путовању и осмислимо курикулум који је створен за студенте и професионалце који желе да буду . Курс је дизајниран да вам пружи почетну предност у Питхон програмирању и обучи вас за основне и напредне Питхон концепте заједно са разним као

шта је кувар и лутка

Ако наиђете на неко питање, слободно поставите сва своја питања у одељку за коментаре „Повезане листе у Питхону“ и наш тим ће вам радо одговорити.