Egyszeresen láncolt lista
Románul: listă simplu înlănțuită, angolul: singly linked list.
Az elemek nem feltétlenül egymás mellett helyezkednek el a memóriában, helyette minden elem tárolja az értéke mellett a következő elem címét is.
Pl. a 24, 36, 5 sorozat tárolása:
--> [24, *] [36, *] [5, NULL]
+-----------^ +----^
Kódban:
| |
Beszúrás a lista végére:
- lehetőség: elmegyünk elemenként a végéig bekötünk utána egy új elemet
- lehetőség: folyamatosan könyveljük azt is, hogy hol van a lista utolsó eleme
| |
Duplán láncolt listák
+---------v +------v
--> [NULL, 20, * ] [ *, 2, * ] [ *, 9, NULL]
^----------------------+ |
^----------------+
20 <-> 2 <-> 9
Kódban:
| |
Absztrakt adatszerkezetek:
Az „absztrakt” szó arra utal, hogy nem azt adjuk meg, hogy hogy lesz tárolva, hanem csak milyen viselkedést várunk el tőle.
verem:
absztrakt adatszerkezet, elemeket tárol,
műveletek:
- elem betevése
- elem törlése
- melyik elem van a tetején?
viselkedés: LIFO sorrendben történnek (last in, first out) == amelyik elem legutóbb került be, azt fogjuk először kivenni
sor:
absztrakt adatszerkezet, elemeket tárol,
műveletek:
- elem betevése
- elem törlése
- melyik lenne a következő kivett elem?
viselkedés: FIFO sorrendben történnek (first in, first out) == amelyik elem legrégebben került be, azt fogjuk először kivenni
Következik: verem és sor implementálása
- tömbbel
- láncolással (egyszeresen láncolt listával)
Verem implementálása tömbbel
| |
Verem implementálása láncolt listával
- elég lesz egyszeres láncolás
- a lista eleje lesz a verem teteje
| |
Sor implementálása tömbbel
| |
Sor implementálása láncolt listával
| |