logo

Abstraktný dátový typ v dátovej štruktúre

Predtým, ako sa dozvieme o abstraktnom dátovom type, mali by sme vedieť, čo je dátová štruktúra.

Čo je dátová štruktúra?

Štruktúra údajov je technika organizácie údajov tak, aby sa údaje dali efektívne využiť. Existujú dva spôsoby zobrazenia dátovej štruktúry:

    Matematické/ Logické/ Abstraktné modely/ Pohľady:Štruktúra údajov je spôsob organizácie údajov, ktorý vyžaduje určité protokoly alebo pravidlá. Tieto pravidlá je potrebné modelovať podľa logického/abstraktného modelu.Implementácia:Druhá časť je realizačná časť. Pravidlá musia byť implementované pomocou nejakého programovacieho jazyka.

Prečo dátová štruktúra?

Výhody použitia dátovej štruktúry sú nasledujúce:

  • Toto sú základné zložky používané na vytváranie rýchlych a výkonných algoritmov.
  • Pomáhajú nám spravovať a organizovať dáta.
  • Dátové štruktúry robia kód čistejším a zrozumiteľnejším.

Čo je abstraktný dátový typ?

Abstraktný dátový typ je abstrakcia dátovej štruktúry, ktorá poskytuje iba rozhranie, ku ktorému sa dátová štruktúra musí držať. Rozhranie neposkytuje žiadne konkrétne podrobnosti o tom, čo by malo byť implementované alebo v akom programovacom jazyku.

Inými slovami, môžeme povedať, že abstraktné dátové typy sú entity, ktoré sú definíciami dát a operácií, ale nemajú detaily implementácie. V tomto prípade poznáme dáta, ktoré ukladáme a operácie, ktoré je možné s dátami vykonať, no nepoznáme detaily implementácie. Dôvodom absencie podrobností o implementácii je, že napríklad každý programovací jazyk má inú stratégiu implementácie; dátová štruktúra C je implementovaná pomocou štruktúr, zatiaľ čo dátová štruktúra C++ je implementovaná pomocou objektov a tried.

Napríklad, a List je abstraktný dátový typ, ktorý je implementovaný pomocou dynamického poľa a prepojeného zoznamu. Front je implementovaný pomocou prepojeného frontu založeného na zozname, frontu založeného na poli a frontu založeného na zásobníku. Mapa sa implementuje pomocou stromovej mapy, hašovacej mapy alebo hašovacej tabuľky.

Model abstraktného dátového typu

Predtým, ako sa dozvieme o modeli abstraktných dátových typov, mali by sme vedieť o abstrakcii a zapuzdrení.

čo je monitor

Abstrakcia: Je to technika skrytia interných detailov pred používateľom a zobrazenie iba nevyhnutných detailov používateľovi.

Zapuzdrenie: Ide o techniku ​​kombinovania údajov a členskej funkcie do jednej jednotky, ktorá je známa ako zapuzdrenie.

Abstraktný dátový typ v dátovej štruktúre

Vyššie uvedený obrázok znázorňuje model ADT. V modeli ADT existujú dva typy modelov, t. j. verejná funkcia a súkromná funkcia. Model ADT obsahuje aj dátové štruktúry, ktoré používame v programe. V tomto modeli sa vykoná prvé zapuzdrenie, t.j. všetky dáta sú zabalené do jednej jednotky, t.j. ADT. Potom sa vykoná abstrakcia, čo znamená, že ukážeme operácie, ktoré je možné vykonať s dátovou štruktúrou a aké sú dátové štruktúry, ktoré v programe používame.

Poďme pochopiť abstraktný dátový typ na príklade z reálneho sveta.

Ak vezmeme do úvahy smartfón. Pozeráme sa na vysoké špecifikácie smartfónu, ako napríklad:

  • 4 GB pamäte RAM
  • Procesor Snapdragon 2,2 GHz
  • 5 palcový LCD displej
  • Duálny fotoaparát
  • Android 8.0

Vyššie uvedené špecifikácie smartfónu sú údaje a na smartfóne môžeme vykonávať aj nasledujúce operácie:

    hovor():Môžeme volať cez smartfón.text():Môžeme poslať správu.fotka():Môžeme kliknúť na fotku.video():Vieme spraviť aj video.

Smartfón je subjekt, ktorého údaje alebo špecifikácie a operácie sú uvedené vyššie. Abstraktné/logické zobrazenie a operácie sú abstraktné alebo logické zobrazenia smartfónu.

Implementačný pohľad vyššie uvedeného abstraktného/logického pohľadu je uvedený nižšie:

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

Vyššie uvedený kód predstavuje implementáciu špecifikácií a operácií, ktoré je možné vykonávať na smartfóne. Pohľad implementácie sa môže líšiť, pretože syntax programovacích jazykov je odlišná, ale abstraktný/logický pohľad na dátovú štruktúru by zostal rovnaký. Preto môžeme povedať, že abstraktný/logický pohľad je nezávislý od pohľadu implementácie.

Poznámka: Poznáme operácie, ktoré možno vykonať s preddefinovanými typmi údajov, ako sú int, float, char atď., ale nepoznáme podrobnosti o implementácii typov údajov. Preto môžeme povedať, že abstraktný dátový typ je považovaný za skrytý box, ktorý skrýva všetky interné detaily dátového typu.

Príklad štruktúry údajov

Predpokladajme, že máme indexové pole veľkosti 4. Máme indexové umiestnenie začínajúce od 0, 1, 2, 3. Pole je dátová štruktúra, kde sú prvky uložené v súvislom umiestnení. Adresa pamäte prvého prvku je 1000, druhého prvku je 1004, tretieho prvku je 1008 a štvrtého prvku je 1012. Keďže ide o celočíselný typ, bude zaberať 4 bajty a rozdiel medzi adresami každého prvku je 4 bajtov. Hodnoty uložené v poli sú 10, 20, 30 a 40. Tieto hodnoty, pozície indexu a adresy pamäte sú implementáciami.

Abstraktné alebo logické zobrazenie celočíselného poľa možno uviesť ako:

  • Ukladá množinu prvkov celočíselného typu.
  • Číta prvky podľa pozície, t.j. indexu.
  • Upravuje prvky podľa indexu
  • Vykonáva triedenie

Pohľad implementácie celočíselného poľa:

súbor otvorený v jave
 a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50