abstraktní model reprezentace dat používaných v počítačových programech From Wikipedia, the free encyclopedia
Abstraktní datový typ (ADT) je v informatice výraz pro typy dat, které jsou nezávislé na vlastní implementaci. Hlavním cílem je zjednodušit a zpřehlednit program, který provádí operace s daným datovým typem. ADT umožňuje vytvářet i složitější datové typy, např. operace s ADT typu zásobník, fronta a asociativní pole. Všechny ADT lze realizovat pomocí základních algoritmických operací (přiřazení, sčítání, násobení, podmíněný skok,…).
Datový typ je rozsah hodnot, které může proměnná tohoto datového typu přijmout, a množina operací (funkce, metody nebo procedury), které jsou pro tento datový typ specifikovány. "+" je například definován pro numerické typy, a v některých programovacích jazycích pro typ string (řetězec). "-" je naproti tomu zpravidla definován jen pro numerické typy dat. Množina operací je uvedena v interface. Abstraktní datový typ může mít odlišnou specifikaci. Ta se skládá z příznaků a sémantiky. Když vyřkneme matematickou definici, jedná se většinou o vztah mezi označením, zdroji a axiomy. Z toho plyne první způsob specifikace ADT - Matematicko-axiomatický. Další možností specifikace je Matematicko-algebraická, která se odlišuje pouze sémantikou. Po obsahové stránce budou operace popsány matematicky pomocí matic, vektorů, posloupností atd. Existují i jiné formy specifikace - přes deklaraci rozhraní v programovacím jazyku.
Krátká definice: Abstraktní datový typ je implementačně nezávislá specifikace struktury dat s operacemi povolenými na této struktuře.
ADT byl představen v roce 1974 Barbarou Liskov a Stephenem Zilles. V roce 1977 jej John Guttag prostřednictvím asociace ACM srozumitelně vysvětlil široké veřejnosti.
Základní ADT jsou například:
Při programování je ADT reprezentováno rozhraním, které skrývá vlastní implementaci. Klientského programátora, který ADT používá, zajímá jak objekt používat (jeho rozhraní), ale ne už vlastní implementace.
Robustnost ADT spočívá v tom, že implementace je skrytá a programátorovi jsou nabídnuty pouze ovládací prvky. Vlastní implementaci ale lze změnit.
Je rozdíl mezi abstraktním datovým typem a datovou strukturou použitou pro jeho implementaci. Například seznam jako ADT může být implementován jako pole, nebo jako spojový seznam. Seznam je ADT s definovanými operacemi (jako vložit_prvek, smazat_prvek atd.), ale spojový seznam je datová struktura, která používá ukazatele a může být použita k vytvoření seznamu jako ADT.
Protože některé abstraktní datové typy jsou velmi užitečné a běžně používané, některé programovací jazyky používají tyto ADT jako primitivní datové typy, které jsou přidány do jejich knihoven. Například v Perlu je možné pole považovat za implementaci seznamu, standardní knihovny C++ a Javy zase nabízejí implementaci seznamu, zásobníku, fronty a řetězců.
Abstraktní datová struktura je způsob, jak efektivně uložit data tak, aby práce s nimi byla relativně snadná. Je to abstraktní skladiště pro data definovaná v rámci množiny operací a pro výpočetní složitosti při vykonávání těchto operací, bez ohledu na implementaci v konkrétní datové struktuře.
Výběr abstraktní datové struktury je rozhodující pro design účinných algoritmů a pro odhad jejich složitosti, zatímco výběr konkrétních datových struktur je důležitý pro účinnou implementaci těchto algoritmů.
Tento pojem je velmi blízký pojmu abstraktní datový typ, který se používá v teorii programovacích jazyků. Názvy mnoha abstraktních datových struktur (a abstraktních datových typů) odpovídají názvům konkrétních datových struktur.
Nejdůležitější vlastnosti abstraktního typu dat jsou:
Pokud je ADT programován objektově, jsou většinou tyto vlastnosti splněny.
Na abstraktním datovém typu rozlišujeme tři druhy operací: konstruktor, selektor a modifikátor. Operace, která ze zadaných parametrů vytváří novou hodnotu abstraktního datového typu, se nazývá konstruktor. Úkolem konstruktoru je sestavení platné vnitřní reprezentace hodnoty na základě dodaných parametrů. Operace označovaná jako selektor slouží k získání hodnot, které tvoří složky nebo vlastnosti konkrétní hodnoty abstraktního datového typu, a konečně operace typu modifikátor provádí změnu hodnoty datového typu.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.