absztrakt adatstruktúrák
a számítástechnikában az absztrakt adattípus (ADT) olyan adattípusok matematikai modellje, ahol az adattípust a viselkedése (szemantika) határozza meg a az adatok felhasználójának szempontjából, különösen a lehetséges értékek, az ilyen típusú adatok lehetséges műveletei, valamint ezeknek a műveleteknek a viselkedése szempontjából. Ez ellentétben áll az adatszerkezetekkel,amelyek az adatok konkrét ábrázolásai, és a megvalósító, nem pedig a felhasználó szempontjából.
formálisan egy ADT definiálható “olyan objektumok osztályaként, amelyek logikai viselkedését értékek és műveletek halmaza határozza meg”; ez hasonló a matematika algebrai struktúrájához. Mit jelent a “viselkedés” változik szerző, a két fő típusa formális leírások viselkedés axiomatikus (algebrai) specifikáció, valamint egy absztrakt modell; ezek egy absztrakt gép axiomatikus szemantikájának, illetve működési szemantikájának felelnek meg. Egyes szerzők magukban foglalják a számítási komplexitást (“költség”), mind az idő (számítási műveletek), mind a tér (értékek ábrázolására) szempontjából.
az absztrakt struktúrák használatának oka az, hogy hatékonyan használják a memóriát a bennük tárolt adatok megtervezése alapján. Nagyon nagy mennyiségű adat vagy nagyon gyakran változó adatok esetén az adatstruktúra hatalmas különbséget tehet a számítógépes program hatékonysága (futási ideje) között.
általánosabb nyelven az absztrakt adatstruktúra csak néhány olyan adatrendezés, amelyet rendezett elrendezésbe építettünk be.
Egy tökéletesen szép áttekintés
Valamilyen típusú absztrakt adatszerkezetek
értékeli az IB
- statikus, illetve dinamikus adatszerkezet,
- tömbök
- két-dimenziós tömbök
- stack
- queue
- láncolt lista
- fa
- bináris fa
- gyűjtemények
- rekurzió
NEM értékeli az IB, de tudnod kell, őket
- listák
- szótárak
- beállítja
- tuple
Alapvető műveletek az adatok szerkezetek
találtam ezt a kiváló diát a Simon Allardice.
Összehasonlítása különböző adatszerkezetek
Adat Szerkezet | Erősségek | Hiányosságok |
tömbök | Beszúrása, illetve törlése elemet, iterating a gyűjtemény | Rendezés, keresés, Beszúrása, illetve törlése – különösen, ha beszúrása, illetve törlése az elején, vagy a végén a tömb |
láncolt lista | a közvetlen indexelés, Könnyű létrehozni használata | közvetlen hozzáférés, keresés, válogatás |
verem, majd sorban | tervezték LIFO / FIFO | közvetlen hozzáférés, keresés, válogatás |
bináris fa | sebesség beszúrás vagy törlés, gyors hozzáférést, fenntartása rendezett sorrendben | egy felső |
- Rögzített struktúrák vagy gyorsabb / kisebb
- Ha figyelembe venni, ha kell használni egy absztrakt adatszerkezet, akkor kérdezd meg magadtól: mit tart a legfontosabb adatokat, illetve mi tartja a leggyakrabban módosított adatok?
statikus vs dinamikus adatstruktúrák összehasonlítása
ezt az összehasonlítást a számítástechnikai tankönyvünkből használjuk.
statikus adatstruktúra | dinamikus adatstruktúra |
hatékony, mivel a memória mennyisége szükség szerint változik. | |
Gyors hozzáférés az adatok minden eleméhez, mivel a memória helyét a program írásakor rögzítik. | lassabb hozzáférés az egyes elemekhez, mivel a memória helyét futási időben osztják el. |
A kiosztott memóriacímek egymáshoz lesznek kötve, így gyorsabban hozzáférhetők. | A kiosztott memóriacímek töredezettek lehetnek, így a hozzáférés lassabb lehet. |
a szerkezetek rögzített méretűek, így kiszámíthatóbbak a munkához. Például tartalmazhatnak egy fejlécet. | a szerkezetek mérete változó, ezért szükség van egy mechanizmusra az aktuális szerkezet méretének megismerésére. |
az adatok különböző elemei közötti kapcsolat nem változik. | az adatok különböző elemei közötti kapcsolat a program futtatásakor megváltozik. |
Leave a Reply