Adatszerkezet

Mi ez?
Az adatszerkezet nem azonos az adattípussal. Az adattípus egy alapvető adattípus, melynek az adattípus egy speciális esete. Például: A fa egy adattípus. A fának lehet tetszőleges számú ága, a fa csúcsait, éleit címkézni, súlyozni lehet. A piros-fekete fa egy adatszerkezet. A piros-fekete fa szerkezetileg egyetlen fából áll, melyben minden csúcsnak legfeljebb két gyermeke van, és csúcsait "piros", illetve "fekete" címkékkel jelölhetjük meg. A piros-fekete fát továbbá meghatározzák azok az algoritmusok, melyek piros-fekete fákon dolgoznak. Ilyen algoritmus például az elem hozzáadása.

Egyes adatszerkezetekről tárolt adatok

 * Axiomatikus leírás (ADT)
 * Funkcionális leírás (ADT)
 * Megjelenítés alapértelmezett formája (ezt az egyes algoritmusok felülírhatják)
 * Kategóriából adódó algoritmusok (összehasonlítva más azonos kategóriában lévő adatszerkezetekkel)
 * További feltöltött algoritmusok
 * Felhasználása, előnyei, hátrányai

Kategóriák
Az adatszerkezetek csoportosításai a használatuk módja szerint. Egyben meghatározzák azt is, hogy milyen műveleteket (algoritmusokat) kell hozzá megadni.

Statikus tömbök
__minden statikus tömb egyben halmaz is__ műveletek: elemlekérés(at), értékadás(set), méret(size) adatszerkezetek: tömb, egyirányú lista, kétirányú lista, ciklikus tömb, ciklikus egyirányú lista, ciklikus kétirányú lista

Dinamikus tömbök
__minden dinamikus tömb egyben statikus tömb is__ műveletek: beszúrás(insert), előrerakás(prepend), hozzáfűzés(append), törlés(remove), elejéről törlés(popFirst), végéről törlés(popLast) adatszerkezetek: [|dinamikus tömb], [|konkatenációs fa], ritka tömb

Halmazok
műveletek: beszúrás(insert), benne(in), kiszedés(remove) egyszerű adatszerkezetek: rendezett tömb, [|hasítótábla], [|hasítófa], keresők

Halmazrendszerek
műveletek: új halmaz(newSet), képviselő(delegate), egyesítés(merge) adatszerkezetek: [|lista], [|kiegyensúlyozott fa]

Keresők
__minden kereső egyben rendező is__ __minden kereső egyben halmaz is__ műveletek: beszúrás(insert), legkisebb(min), legnagyobb(max), keres(find), töröl(remove) egyszerű adatszerkezetek: rendezett tömb, bináris keresőfa komolyabb adatszerkezetek: [|AVL-fa], [|2-3 fa], [|B-fák], [|piros-fekete fa], [|splay fa], [|prefixfa]

Rendezők
műveletek: beszúrás(insert), következő(min), kivesz(extract), kulcs-csökkentés(decrease), egyesítés(merge) egyszerű adatszerkezetek: rendezetlen tömb, rendezett tömb, rendezetlen lista, rendezett lista komolyabb adatszerkezetek: [|bináris kupac], [|binominális kupac], [|Fibonacci kupac]