Lista
A HupWiki-ből...
A lista homogén, szekvenciális (lineáris), dinamikus adatszerkezet. A homogén azt jelenti, hogy csak egyfajta elemet tud tárolni, a szekvenciális azt jelenti, hogy egymás után vannak az elemek befűzve. A következő fajtái vannak: láncolt lista, gyűrű, kétirányú lista, összetett lista.
- Láncolt lista
Minden eleme pontosan egy mutatót tartalmaz, egy másik ugyanolyan típusú elemre, illetve egy adott típusú adatot. A lánc első elemének a címét a lista feje tartalmazza. A listafej nem tartalmaz információs részt. A lánc utolsó elemének mutatója NULL-t tartalmaz.
class Elem { Típus Adat; Elem *Következő; } class Lista { Elem *Fej; }
Valahogy így lehet ábrázolni:
|Fej|-->|1.elem|-->|2.elem|-->...-->|n.elem|-->NULL
- Gyűrűk
A gyűrűnek az a lényege, hogy az utolsó elem nem a NULL-ra fog mutatni, hanem az első elemre, így kört hozva létre. Ennek az az előnye, hogy bármelyik elemből bármelyik elemet el lehet érni. A gyűrű bejárásánál azonban nagyon figyelnünk kell, ugyanis a lista végét már nem jelzi NULL pointer.
- Kétirányú láncolt listák
Ha mindegyik elemből nem csak a következő elemet lehet elérni, hanem az előzőt is, tehát egy előzőre mutató pointere is van az elemnek, akkor kétirányú listáról beszélünk.
- Összetett listák
Az összetett lista elemei lehetnek adatelemek és újabb listák is.