added orai
This commit is contained in:
@@ -136,3 +136,54 @@ Láncolt lista
|
||||
Míg egy tömb esetén ha tudjuk,hogy a k. elemet szeretnénk elérnim akkor a tömb indexelésével rögtön hozzáférhefünk ehhet az adathoz, addog a láncolt listában a lista elejéről indulva a mutatókon keresztül addig kell lépkedni, míg a k. elemhez nem értünk.
|
||||
A véletlenszerű lista elem megtalálása a lista hosszával arányos időt igényel.
|
||||
|
||||
Egyszeresen láncolt lista
|
||||
Egyszeresen láncolt listában egy darab mutató jelöli a lista rákövetkező elemét.
|
||||
Ha ismerjük a lista legelső elemét (lista feje), akkor abból elindulva a mutatók segítségével végig járhatjuk a listában tárolt elemeket.
|
||||
A lista legutolsó elemének mutatójának értéke null, ez jelzi, hohgy tovább nem tudunk haladni a listában.
|
||||
Láncolt lista esetén általában egyszeresen láncolt listára gondolunk.
|
||||
|
||||
Csomopont osztály: az adatot és a következő elemre mutató referenciát tartalmazza.
|
||||
LancoltLista osztály: tartalmazza a listához szükséges főbb műveletekez:
|
||||
Hozzaad: új elemet ad a lista végéhez
|
||||
Torol: töröl
|
||||
Kiir: kiír
|
||||
|
||||
Pogram osztály:
|
||||
Teszteli a fenit műveleteket, létrehozza a listát, hozzáad elemeket,
|
||||
töröl egy létező és egy nem létező elemet, majd kiírja a lista tartalmát.
|
||||
|
||||
Kétszeresen láncolt lista
|
||||
Kétszeresen láncolt lsuita esetán 2db hivatkozűs van egy csomópontban,
|
||||
az egyik az előző a másik a következő csomópontra mutat, C# ban kétszeresen láncolt listák vannak.
|
||||
Hasonlóan mint a listák, szintén osztályból vannak létrehozva és ezért referencia típus,
|
||||
természetesen referencia másolás történik értékadásnál.
|
||||
|
||||
Mint a listák esetében is a LinkedList beírása utám a <> jelek közé kerül a láncolt listánk típusa és a megszokott név,
|
||||
egyenlőségjel a new operátor valamint újra a LinkedList és el ne felejtsük a zárójeleket!
|
||||
|
||||
LinkedList<string> lancoltlista = new LinkedList<string>();
|
||||
|
||||
Ezután a Linkedlist.AddLast(érték) metódussal tudunk a listánk végére beszúrni egy elemet,
|
||||
vagy például az AddFirst(érték) metódussal pedig a lista első helyére.
|
||||
|
||||
Láncolt listák fontos metódusai
|
||||
LinkedList.RemoveLast/First törli a lista utolsó vagy első elemét.
|
||||
|
||||
LinkedListNode<T> = LinkedList.Last/First
|
||||
Visszaadja egy adott listában szereplő első vagy utolsó csomópontot, amelyben megtalálhatjuk a következő csinópontra mutató hivatkozást.
|
||||
|
||||
A LinkedList<T> objektumban minden csomópont LinkedListNode<T> típusú.
|
||||
Mivel a LinkedList<T> kétszeresen kapcsolódik, minden csomópont előre mutat a köevtkező csomópontra, illetve hátra az előzőre.
|
||||
|
||||
LinkedList.AddAfter(LinkedListNode, value) / AddBefore
|
||||
Egy csomópont elé vagy után szúr be adatot.
|
||||
|
||||
LinkedListNode<T> = LinkedList.Find(keresett_ertek)
|
||||
Visszaadja a megadott értékhez tartozó csomópontot.
|
||||
|
||||
Csomópontok - LinkedListNode
|
||||
Egy listából létrehozunk egy-egy csomópontot, melyben az adott csomóponthoz tartozó érték és a következő csomópontra mutató hivatkozás van.
|
||||
A következő csomópontra való ugráshoz a .Next metódust kell használnunk, hogy visszafele közlekedjünk pedig a .Previous metódust kell használnunk.
|
||||
A .Value metódus az adott csomópontban eltárolt adatot adja vissza.
|
||||
Mivel tudjuk, hogy a láncolt listák utolsó, illetve első eleme null értékű, így egy while ciklussal is végig tudunk menni az adott láncolt listán,
|
||||
a léptetéséről a Next gondoskodik.
|
||||
|
||||
Reference in New Issue
Block a user