logo

Absztrakt adattípus az adatstruktúrában

Mielőtt megismernénk az absztrakt adattípust, tudnunk kell, hogy mi az adatstruktúra.

Mi az adatstruktúra?

Az adatstruktúra az adatok olyan rendszerezési technikája, hogy az adatokat hatékonyan lehessen használni. Az adatstruktúra megtekintésének két módja van:

    Matematikai/ Logikai/ Absztrakt modellek/ Nézetek:Az adatstruktúra az adatok rendszerezésének módja, amely bizonyos protokollokat vagy szabályokat igényel. Ezeket a szabályokat kell modellezni, amelyek a logikai/absztrakt modell alá tartoznak.Végrehajtás:A második rész a megvalósítási rész. A szabályokat valamilyen programozási nyelv segítségével kell megvalósítani.

Miért az adatstruktúra?

Az adatstruktúra használatának előnyei a következők:

  • Ezek az alapvető összetevők a gyors és hatékony algoritmusok létrehozásához.
  • Segítenek az adatok kezelésében, rendszerezésében.
  • Az adatszerkezetek tisztábbá és könnyebben érthetővé teszik a kódot.

Mi az absztrakt adattípus?

Az absztrakt adattípus egy adatstruktúra absztrakciója, amely csak azt a felületet biztosítja, amelyhez az adatstruktúrának csatlakoznia kell. Az interfész nem ad konkrét részleteket arról, hogy valamit milyen programozási nyelven kell megvalósítani.

Más szóval azt mondhatjuk, hogy az absztrakt adattípusok azok az entitások, amelyek adatok és műveletek definíciói, de nem rendelkeznek megvalósítási részletekkel. Ebben az esetben ismerjük az általunk tárolt adatokat és az adatokon végrehajtható műveleteket, de a megvalósítás részleteiről nem. A megvalósítási részletek hiányának oka, hogy például minden programozási nyelvnek más megvalósítási stratégiája van; a C adatstruktúra struktúrákkal, míg a C++ adatstruktúra objektumok és osztályok használatával valósul meg.

Például, a lista egy absztrakt adattípus, amelyet dinamikus tömb és csatolt lista segítségével valósítanak meg. A várólista összekapcsolt lista alapú várólista, tömb alapú várólista és verem alapú sor használatával kerül megvalósításra. A térképet fatérkép, hash térkép vagy hash táblázat segítségével valósítják meg.

Absztrakt adattípus-modell

Mielőtt megismernénk az absztrakt adattípus modellt, ismernünk kell az absztrakciót és a beágyazást.

metódus részkarakterlánc java

Absztrakció: Ez egy olyan technika, amely a belső részleteket elrejti a felhasználó elől, és csak a szükséges részleteket mutatja meg a felhasználónak.

Beágyazás: Az adatok és a tagfüggvény egyetlen egységben történő kombinálásának módszere, amelyet beágyazásnak neveznek.

Absztrakt adattípus az adatstruktúrában

A fenti ábra az ADT modellt mutatja. Az ADT modellben kétféle modell található, azaz a nyilvános funkció és a privát funkció. Az ADT modell tartalmazza azokat az adatstruktúrákat is, amelyeket egy programban használunk. Ebben a modellben az első beágyazás történik, azaz az összes adat egyetlen egységbe, azaz ADT-be van csomagolva. Ezután az absztrakció végrehajtása azt jelenti, hogy megmutatja, milyen műveleteket lehet végrehajtani az adatstruktúrán, és melyek azok az adatstruktúrák, amelyeket egy programban használunk.

Ismerjük meg az absztrakt adattípust egy valós példán keresztül.

Ha figyelembe vesszük az okostelefont. Megnézzük az okostelefon magas műszaki jellemzőit, például:

  • 4 GB RAM
  • Snapdragon 2,2 GHz-es processzor
  • 5 hüvelykes LCD képernyő
  • Kettős kamera
  • Android 8.0

Az okostelefon fenti specifikációi az adatok, és a következő műveleteket is elvégezhetjük az okostelefonon:

    hívás():Telefonon keresztül tudunk hívni.szöveg():Tudunk üzenetet küldeni.fénykép():Kattinthatunk egy fényképre.videó():Videót is készíthetünk.

Az okostelefon olyan entitás, amelynek adatait vagy specifikációit és műveleteit a fentiekben adtuk meg. Az absztrakt/logikai nézet és a műveletek egy okostelefon absztrakt vagy logikai nézetei.

A fenti absztrakt/logikai nézet megvalósítási nézete az alábbiakban látható:

 class Smartphone { private: int ramSize; string processorName; float screenSize; int cameraCount; string androidVersion; public: void call(); void text(); void photo(); void video(); } 

A fenti kód az okostelefonon végrehajtható specifikációk és műveletek megvalósítása. A megvalósítási nézet eltérő lehet, mivel a programozási nyelvek szintaxisa eltérő, de az adatstruktúra absztrakt/logikai nézete változatlan maradna. Ezért azt mondhatjuk, hogy az absztrakt/logikai nézet független az implementációs nézettől.

string int konvertálása java-ban

Megjegyzés: Ismerjük az előre meghatározott adattípusokon, például int, float, char stb. végrehajtható műveleteket, de nem ismerjük az adattípusok megvalósításának részleteit. Ezért azt mondhatjuk, hogy az absztrakt adattípus a rejtett doboz, amely az adattípus összes belső részletét elrejti.

Adatszerkezeti példa

Tegyük fel, hogy van egy 4-es méretű indextömbünk. Van egy indexhelyünk 0, 1, 2, 3-tól kezdődően. A tömb egy olyan adatstruktúra, amelyben az elemek egy összefüggő helyen vannak tárolva. Az első elem memóriacíme 1000, a második elem 1004, a harmadik elem 1008, a negyedik elem pedig 1012. Mivel egész típusú, így 4 bájtot fog elfoglalni, és az egyes elemek címei közötti különbség 4 bájtok. A tömbben tárolt értékek 10, 20, 30 és 40. Ezek az értékek, az indexpozíciók és a memóriacímek a megvalósítások.

Az egész tömb absztrakt vagy logikai nézete a következőképpen állítható be:

  • Egész típusú elemek halmazát tárolja.
  • Az elemeket pozíció, azaz index szerint olvassa be.
  • Indexenként módosítja az elemeket
  • Rendezést végez

Az egész tömb megvalósítási nézete:

 a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50