Tartalomjegyzék

Adatszerkezetek

Adatelem: Az a legkisebb adategység, melyre hivatkozni lehet
Adatszerkezet: Az adatelemek olyan véges halmaza, amelyben az adatelemek között szerkezeti összefüggések vannak. A szerkezeti összefüggések határozzák meg az alapelemek egymáshoz való viszonyát és az adatszerkezeten végezhető műveleteket.

Osztályozásuk szerkezetük szerint:

Homogén adatszerkezetek

A homogén adatszerkezetek azonos típusú adatelemekből épülnek fel.

Struktúra nélküli homogén adatszerkezetek

A struktúra nélküli adatszerkezetek esetében az egyes adatelemek függetlenek, azaz nincs közöttük semmi nemű kapcsolat, alá- illetve fölérendeltség, vagy sorrend. Így bármikor eldönthető, hogy egy kiválasztott elem az adatszerkezet komponense-e vagy sem.

  1. Halmaz: A matematikai halmazfogalom megjelenése adatszerkezeti szinten.
  2. Multihalmaz: Olyan speciális halmaz, amely ismétlődést is megenged, azaz lehetnek benne azonos elemek.
  3. Szeriális állomány: Olyan speciális állomány, amelyben az adatok egymást után helyezkednek el.

Asszociatív homogén adatszerkezetek

Az asszociatív adatszerkezetek esetében a rendelkezésre álló elemekből részhalmazokat tudunk képezni amelyek átfedhetik egymást. Az adatelemek között lényegi kapcsolat nincs, de az adatelemek tartalmuk alapján címezhetőek.

  1. Tömb: Az egyik legismertebb és leggyakrabban alkalmazott adatszerkezet. Bármelyik adateleme elérhető úgynevezett indexek (azonosító koordináták) használatával. Reprezentációi:
    • Sor: Az adatok egy sorban helyezkednek el, egy dimenziós adatszerkezet, egy indexű. (Nap azonos a sor adatszerkezettel!)
    • Mátrix: Az adatok sor-oszlop egységet alkotnak, tehát két dimenziós az adatszerkezet, így az adatelemek két index segítségével címezhetők.
    • Tömb: Három- vagy több dimenziós megjelenési forma.
  1. Táblázat: A táblázat két elemből áll: egy kulcsból és egy értékből. A kulcs hordozza az érték elérési helyét. Reprezentációi:
  1. Direkt állomány. Olyan állománykezelési forma, amely esetében az állomány bármely adata bárhonnan elérhető.
  2. Random állomány. Felépítése a direkt állományéhoz hasonlít, azzal a különbséggel, hogy az elérése véletlenszerű.
  3. Indexelt állomány. Valamilyen logikailag rendezett állomány, amely esetében az adatok változatlanul a helyükön maradnak, mindössze az állomány fejében tárolódik egy rendezett lista.
  4. Invertált állomány. Olyan állomány, amely egy másik állomány rekordjait valamely más kulcs szerint teszi közvetlenül elérhetővé.
  5. Multilista állomány. Olyan állomány, amelyben több egymásba ágyazott és rendezett lista kap helyet.

Szekvenciális homogén adatszerkezetek

Az adatelemek egymás után következnek, minden elem két másikkal van közvetlen kapcsolatban, kivéve az első és utolsó elemet, azaz egyértelmű sorrendje van az adatelemeknek - láncolt lista, verem, sor

Hierarchikus szerkezetek

A hierarchikus adatszerkezetek esetében egy elemnek akárhány rákövetkezője lehet, de minden elemnek csak egyetlen megelőzője létezik, másképp alárendeltje több lehet, de fölérendeltje csak egy (1 szülő, több leszármazott)

Hálós szerkezetek

A hálós adatszerkezetek a fák általánosításai, azaz olyan megjelenési formával bírnak, amelyek esetében az elemeknek akárhány megelőzőjük és rákövetkezőjük lehet, beleértve azt is, hogy két elem között olyan kapcsolat van, amely szerint az egyik elem a másik rákövetkezője és megelőzője is egyaránt lehet.

Heterogén adatszerkezetek

A heterogén adatszerkezetek elemei eltérő típusúak lehetnek. Egyetlen megjelenési formája van: a rekord, amely egy tárban létező statikus adatszerkezet (tárolása alapján lehet folytonos és szétszórt). Kötött számú és sorrendű mezőből áll, amely mezők más-más, tetszőleges típusú értékeket tartalmaznak. A rekordban minden mezőt megnevezünk, és hivatkozáskor közvetlenül ezen nevet használjuk.

Bizonyos értelemben a rekord adatszerkezet kibővítése az objektum, mint adatszerkezet.

A helyfoglalás időbeni változása szerint

Statikus helyfoglalású

Elemeinek száma használatuk során állandó marad. Ilyen esetekben a felhasználó feladata, hogy megadja a szükséges elemszámot, azaz az adatszerkezetet feltöltse adattal. Fordítási időben eldől, hogy mekkora méretű tárterületet kell lefoglalni az adatszerkezet számára.
Például: Turbo Pascal array vagy record adatszerkezete

Dinamikus helyfoglalású

Használatuk során elemeinek száma változhat, sőt akár nullára is csökkenhet. Programozási szempontból kezelésük jóval bonyolultabb, mint a statikus adatszerkezeteké, gondoskodni kell a tárterület lefoglalásáról és felszabadításáról.

Az adatszerkezetet rekurzívnak nevezzük, ha definíciója önmagára vanatkozó hivatkozást tartalmaz (például: lista, fa). A rekurzív adatszerkezetet lineárisnak nevezzük, ha egy ilyen hivatkozást tartalmaz csak, azaz egyértelmű az adatelemek sorrendje (így például a fa nem lineáris).

A tárolása módja szerint

Folytonos (szekvenciális vagy vektorszerű)

A memóriában tárolt elemek egy folytonos tárterületen, egymás után helyezkednek el, és az adattételek tárolási jellemzői (típus, ábrázolási mód, hossz) azonosak.

Szétszórt

Az adatelemek szétszórtan helyezkednek el a memóriában, és elemei úgynevezett listaláncolással kapcsolódnak egymáshoz. A listák kiépítése a következő lehet:

Verem (Stack) (LIFO)

Utasításkészlet

Sor (Buffer) (FIFO)

Utasításkészlet

Megvalósítás

Verem (Statikus)

Mire van szükség?

Utasítások

Sor (Statikus)

Mire van szükség?


Live Update - Horányi Gergő 2007/05/04 13:57
Források:

=== Vita ===

A konkrét adatszerkezeteket valószínűleg külön szócikkben kell kifejteni, itt legfeljevbb felsorolni kellene őket… [bb]