csharptutorial.hu Egyszeresen láncolt lista Egy ilyen 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, hogy 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 (Adat) és a következő elemre mutató referenciát (Kovetkezo) tartalmazza. LancoltLista osztály: Tartalmazza a listához szükséges főbb műveleteket: Hozzaad: Új elemet ad a lista végéhez. Torol: Törli a listából a megadott adatot tartalmazó elemet. Kiir: Kiírja a lista elemeit a konzolra. Program osztály: Teszteli a fenti 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 tartalmát. Kétszeresen láncolt lista Kétszeresen láncolt lista esetén a 2db hivatkozás (zöld és sárga) van egy-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án a <> jelek közé kerül a láncolt listák 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! 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. A láncolt listák fontos metódusai LinkedList.RemoveLast / First: Törli a láncolt lista utolsó/első elemét. LinkedListNode = LinkedList.Last/First. Visszaadja egy adott listában szereplő első vagy utolsó csomópontot, amelyben megtalálhatjuk a következő csomópontra mutató hivatkozást. A LinkedList objektumban minden csomópont LinkedListNode típusú. Mivel a LinkedList kétszeresen kapcsolódik, minden csomópont előre mutat a következő csomópontra, és visszafelé az előző csomópontra. LinkedList.AddAfter(LinkedListNode, érték) / AddBefore: Egy adott listacsomópont mögé vagy elé szúr egy másik csomópontot, amelyben a megadott érték szerepel, és az új adat beépül a láncolt lista szerkezetébe. LinkedListNode = LinkedList.Find(keresett érték): Egy LinkedList-ben visszaadja a megadott értékhez tartozó csomópontot. Csomópontok - LinkedListNode Egy listából létrehozhatunk egy-egy csomópontot, melyben az adott csomóponthoz tartozó érték és a következő csomópontra való 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ésről a Next gondoskodik.