added orai

This commit is contained in:
szabomarton
2024-11-21 10:08:03 +01:00
parent 152126ad18
commit d802eb4b67
43 changed files with 469 additions and 18 deletions

View File

@@ -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.