logo

Absztrakt adattípusok

An Absztrakt adattípus (ADT) egy koncepcionális modell, amely egy adatstruktúra műveleteinek és viselkedéseinek halmazát határozza meg anélkül, hogy meghatározná e műveletek végrehajtásának módját vagy hogyan szerveződnek az adatok a memóriában. Az ADT definíciója csak azt említi, hogy mit műveleteket kell végrehajtani de nem hogyan ezeket a műveleteket végrehajtják. Nem határozza meg, hogy az adatok hogyan legyenek rendszerezve a memóriában, és milyen algoritmusokat használnak a műveletek végrehajtására. „Absztraktnak” nevezik, mert megvalósítástól független nézetet biztosít.

Az a folyamat, amikor csak a legszükségesebbeket biztosítjuk és a részleteket rejtjük el, ún absztrakció.

Az ADT jellemzői



Az absztrakt adattípusok (ADT) az adatok és az azokon végzett műveletek egyetlen egységbe foglalásának módjai. Az ADT-k néhány fő jellemzője:

  • Absztrakció: A felhasználónak nem kell ismernie az adatstruktúra megvalósítását, csak a lényeget biztosítjuk.
  • Jobb konceptualizálás: Az ADT jobb felfogást ad a valós világról.
  • Erős: A program robusztus, és képes elkapni a hibákat.
  • Kapszulázás : Az ADT-k elrejtik az adatok belső részleteit, és nyilvános felületet biztosítanak a felhasználók számára az adatokkal való interakcióhoz. Ez lehetővé teszi az adatstruktúra egyszerűbb karbantartását és módosítását.
  • Adatabsztrakció : Az ADT-k bizonyos szintű absztrakciót biztosítanak az adatok megvalósítási részleteitől. A felhasználóknak csak az adatokkal végrehajtható műveleteket kell ismerniük, nem pedig azt, hogy ezeket a műveleteket hogyan hajtják végre.
  • Adatstruktúra függetlenség : Az ADT-k különböző adatstruktúrákkal, például tömbökkel vagy csatolt listákkal valósíthatók meg anélkül, hogy az ADT működését befolyásolnák.
  • Információ elrejtése: Az ADT-k megvédhetik az adatok integritását azáltal, hogy csak az arra jogosult felhasználóknak és műveleteknek engedélyezik a hozzáférést. Ez segít megelőzni a hibákat és az adatokkal való visszaélést.
  • Modularitás : Az ADT-k kombinálhatók más ADT-kkel nagyobb, összetettebb adatstruktúrák kialakításához. Ez nagyobb rugalmasságot és modularitást tesz lehetővé a programozásban.

Összességében az ADT-k hatékony eszközt biztosítanak az adatok strukturált és hatékony szervezéséhez és kezeléséhez.

Ez a kép azt szemlélteti, hogy egy absztrakt adattípus (ADT) hogyan rejti el a belső adatstruktúrákat (például a tömbökhöz kapcsolódó listákat) nyilvános és privát funkciók segítségével, és csak egy meghatározott felületet tesz közzé az alkalmazási program számára.

Absztrakt adattípusok

Miért érdemes ADT-ket használni?

Az alábbiakban felsoroljuk az ADT-k Java-ban való használatának fő okait:

  • Tokozás: A bonyolult megvalósítási részleteket egy tiszta felület mögé rejti.
  • Újrafelhasználhatóság : Különféle belső megvalósításokat tesz lehetővé (pl. tömb vagy linkelt lista) a külső használat megváltoztatása nélkül.
  • Modularitás: A logika szétválasztásával leegyszerűsíti a karbantartást és a frissítést.
  • Biztonság: Védi az adatokat azáltal, hogy megakadályozza a közvetlen hozzáférést, minimalizálja a hibákat és a nem kívánt változtatásokat.

Példa az absztrakcióra

Például olyan primitív értékeket használunk, mint az int float és a char, azzal a tudattal, hogy ezek az adattípusok működhetnek és végrehajthatók anélkül, hogy ismernénk a megvalósítás részleteit. Az ADT-k definiálásával hasonlóan működnek milyen műveletek lehetségesek végrehajtásuk részletezése nélkül.

Különbség az ADT-k és az UDT-k között

Az alábbi táblázat bemutatja az ADT-k és az UDT-k közötti különbséget.

localdate java

Vonatkozás

Absztrakt adattípusok (ADT)

Felhasználó által meghatározott adattípusok (UDT)

Meghatározás

Meghatározza az objektumok osztályát és a rajtuk végrehajtható műveleteket a várható viselkedésükkel (szemantikával), de a megvalósítás részleteinek megadása nélkül.

css csomagoló szöveg

Egyéni adattípus, amelyet a meglévő primitív típusok kombinálásával vagy kiterjesztésével hoznak létre, amelyek a struktúrát és a műveleteket egyaránt meghatározzák.

Fókusz

Milyen műveletek engedélyezettek és hogyan viselkednek anélkül, hogy megszabnák, hogyan kell végrehajtani őket.

Az adatok rendszerezése a memóriában és a műveletek végrehajtása.

Cél

Absztrakt modellt biztosít az adatszerkezetek fogalmi meghatározásához.

Lehetővé teszi a programozók számára, hogy primitív típusok használatával konkrét adatszerkezeti implementációkat hozzanak létre.

Megvalósítási részletek

Nem határozza meg a műveletek végrehajtásának módját vagy az adatok felépítését.

Meghatározza, hogyan kell adattípusokat létrehozni és rendszerezni a struktúra megvalósításához.

Használat

Adatstruktúrák tervezésére és koncepciózására használják.

Olyan adatstruktúrák megvalósítására szolgál, amelyek megvalósítják az ADT-k által meghatározott absztrakt fogalmakat.

Példa

ADT verem ADT sor ADT listája.

Struktúrák osztályok felsorolások rekordok.

Példák ADT-kre

Most ismerjük meg a három általános ADT-t: az ADT verem ADT listája és az ADT sora.

1. Sorolja fel az ADT-t

A List ADT (absztrakt adattípus) elemek szekvenciális gyűjteménye, amely egy sor műveletet támogat. a belső megvalósítás meghatározása nélkül . Rendezett módot biztosít a hozzáférés tárolására és az adatok módosítására.

a dátumok eltérése Excelben
Absztrakt adattípusokVies of list

Műveletek:

A List ADT-nek tárolnia kell a szükséges adatokat a sorrendben, és a következő műveletekkel kell rendelkeznie :

  • kap(): Egy elem visszaadása a listából bármely adott pozícióban.
  • insert(): Szúrjon be egy elemet a lista tetszőleges helyére.
  • eltávolítás(): Távolítsa el bármely elem első előfordulását egy nem üres listából.
  • removeAt(): Távolítsa el az elemet egy adott helyen egy nem üres listáról.
  • csere(): Cserélje ki az elemet bármely pozícióban egy másik elemre.
  • méret(): Adja vissza a lista elemeinek számát.
  • isEmpty(): Igaz értéket ad vissza, ha a lista üres; ellenkező esetben hamis értéket ad vissza.
  • isFull(): Igaz értéket ad vissza, ha a lista megtelt, ellenkező esetben hamis értéket ad vissza. Csak rögzített méretű megvalósításokban (pl. tömb alapú listák) alkalmazható.

2. Verem ADT

A Stack ADT egy lineáris adatstruktúra, amely a LIFO (Last In First Out) elvet követi. Lehetővé teszi elemek hozzáadását és eltávolítását csak az egyik végéről, a verem tetejéről.

Absztrakt adattípusokKilátás a veremre

Műveletek:

A Stack ADT-ben a beillesztés és a törlés sorrendjének a FILO vagy LIFO elv szerint kell történnie. Az elemek beillesztése és eltávolítása ugyanarról a végről, az úgynevezett verem tetejéről történik. A következő műveleteket is támogatnia kell:

  • push(): Helyezzen be egy elemet a verem egyik végébe, amelyet felsőnek neveznek.
  • pop(): Távolítsa el és küldje vissza a köteg tetején lévő elemet, ha az nem üres.
  • kandikál(): Ha a köteg nem üres, küldje vissza a verem tetején lévő elemet eltávolítása nélkül.
  • méret(): Visszaadja a veremben lévő elemek számát.
  • isEmpty(): Igaz értéket ad vissza, ha a verem üres; ellenkező esetben hamis értéket ad vissza.
  • isFull(): Igaz értéket ad vissza, ha a verem megtelt; ellenkező esetben hamis értéket ad vissza. Csak a rögzített kapacitású veremekre vonatkozik (pl. tömbalapú).

3. ADT sor

A Queue ADT egy lineáris adatstruktúra, amely a FIFO (First In First Out) elvet követi. Lehetővé teszi az elemek beillesztését az egyik végén (hátsó) és a másik végén (elöl) történő eltávolítását.

Absztrakt adattípusokNézet a sorból

Műveletek:

A Queue ADT a Stack ADT-hez hasonló kialakítást követ, de a beillesztés és a törlés sorrendje FIFO-ra változik. Az elemeket az egyik végükbe helyezik be (hátsónak hívják), a másik végéről (az elülső részről) pedig eltávolítják. A következő műveleteket kell támogatnia:

visszatérési típusa java-ban
  • enqueue(): Szúrjon be egy elemet a sor végére.
  • ennek megfelelően(): Távolítsa el és adja vissza a sor első elemét, ha a sor nem üres.
  • kandikál(): Ha a sor nem üres, adja vissza a sor elemét eltávolítása nélkül.
  • méret(): A sorban lévő elemek számát adja vissza.
  • isEmpty(): Igaz értéket ad vissza, ha a sor üres; ellenkező esetben hamis értéket ad vissza.

Az ADT előnyei és hátrányai

Az absztrakt adattípusoknak (ADT) számos előnye és hátránya van, amelyeket figyelembe kell venni, amikor a szoftverfejlesztésben való felhasználásukról döntünk. Íme néhány fő előnye és hátránya az ADT-k használatának:

Előny:

Az előnyöket az alábbiakban soroljuk fel:

  • Kapszulázás : Az ADT-k lehetővé teszik az adatok és a műveletek egyetlen egységbe foglalását, megkönnyítve az adatstruktúra kezelését és módosítását.
  • Absztrakció : Az ADT-k lehetővé teszik a felhasználók számára, hogy adatstruktúrákkal dolgozzanak anélkül, hogy ismerniük kellene a megvalósítás részleteit, ami leegyszerűsítheti a programozást és csökkentheti a hibákat.
  • Adatstruktúra függetlenség : Az ADT-k különböző adatstruktúrák segítségével valósíthatók meg, amelyek megkönnyítik a változó igényekhez és követelményekhez való alkalmazkodást.
  • Információ elrejtése : Az ADT-k megvédhetik az adatok integritását a hozzáférés szabályozásával és a jogosulatlan módosítások megakadályozásával.
  • Modularitás : Az ADT-k kombinálhatók más ADT-kkel, hogy összetettebb adatstruktúrákat alakítsanak ki, amelyek növelhetik a programozás rugalmasságát és modularitását.

Hátrányok:

A hátrányokat az alábbiakban soroljuk fel:

  • Felső : Az ADT-k megvalósítása többletköltséget jelenthet a memória és a feldolgozás tekintetében, ami befolyásolhatja a teljesítményt.
  • Bonyolultság : Az ADT-k megvalósítása bonyolult lehet, különösen nagy és összetett adatstruktúrák esetén.
  • Tanulás Görbe: Az ADT-k használatához ismerni kell azok megvalósítását és használatát, aminek megtanulása időt és erőfeszítést igényel.
  • Korlátozott rugalmasság: Előfordulhat, hogy egyes ADT-k funkcionalitása korlátozott, vagy nem minden típusú adatszerkezethez alkalmas.
  • Költség : Az ADT-k megvalósítása további erőforrásokat és befektetést igényelhet, ami növelheti a fejlesztés költségeit.
Kvíz létrehozása