A linkelt lista egy alapvető dinamikus adatstruktúra a számítástechnikában, amely adatokat tartalmazó csomópontokból és a lista következő és/vagy előző csomópontjára mutató hivatkozásokból ("hivatkozásokból") áll. [1] A tömbhöz képest alapvető előnye a szerkezeti rugalmasság: a linkelt lista elemeinek sorrendje nem feltétlenül esik egybe a számítógép memóriájában lévő adatelemek sorrendjével [2] , és a lista bejárásának sorrendje mindig belső linkjei kifejezetten beállítják.
A lineáris, egyszeresen irányított lista olyan adatstruktúra, amely azonos típusú elemekből áll, amelyek egymás után mutatókon keresztül kapcsolódnak egymáshoz. A lista minden eleméhez tartozik egy mutató a következő elemre. A lista utolsó eleme a NULL -ra mutat . A nem mutatott elem a lista első (fej) eleme. Itt az egyes csomópontokon lévő hivatkozások a lista következő csomópontjára mutatnak. Egyedül linkelt listában csak a lista vége felé lehet haladni. Az aktuális csomópont tartalma alapján nem lehet kideríteni az előző elem címét.
A számítástechnikában a lineáris listát általában absztrakt adattípusként (ADT) definiálják, amely formalizálja a rendezett adatgyűjtemény fogalmát . A gyakorlatban a lineáris listákat általában tömbök és linkelt listák segítségével valósítják meg. Néha a "lista" kifejezést informálisan is használják a "linked list" szinonimájaként. Például egy tipizálatlan mutálható ADT lista konstruktor és alapműveletek halmazaként definiálható :
egyedileg linkelt lista segítségével:
struct list * l1 = ( struct list * ) malloc ( sizeof ( struct list )); l1 -> mező = 1 ; l1 -> next = ( struct lista * ) malloc ( sizeof ( struct list )); l1 -> következő -> mező = 2 ; l1 -> next -> next = ( struct lista * ) malloc ( sizeof ( struct list )); /* stb. */ Duplán linkelt lista (duplán linkelt lista)Itt az egyes csomópontokban lévő hivatkozások a lista előző és következő csomópontjára mutatnak. Az egyszeresen linkelt listához hasonlóan a duplán linkelt lista is csak egymás utáni hozzáférést tesz lehetővé az elemekhez, de lehetővé teszi mindkét irányú mozgást is. Ebben a listában egyszerűbb az elemek törlése és átrendezése, mivel a lista azon elemeinek címe, amelyek mutatói a módosítandó elemre mutatnak, könnyen elérhetők.
XOR linkelt listaRitkán használt.
A linkelt lista egyfajta gyűrűs (ciklikus, zárt) lista. Lehet egyszeres vagy dupla linkes is. A körlista utolsó eleme az elsőre, az első (kétszeresen linkelt lista esetén) pedig az utolsóra mutat mutatót.
Általában egy ilyen struktúra lineáris lista alapján valósul meg. Minden kör alakú lista emellett tárol egy mutatót az első elemre. Ebben a listában nincs hivatkozás a NULL-ra.
Vannak körkörös listák is, amelyekben külön fejelem található, hogy megkönnyítsék a teljes listát.
A linkelt listák hátrányai a fő tulajdonságukból – az adatokhoz való szekvenciális hozzáférésből – erednek:
Adatstruktúrák | |
---|---|
Listák | |
fák | |
Számít | |
Egyéb |