logo

Úvod do datových struktur

Od vynálezu počítačů lidé používají termín „ Data ' odkazovat na informace o počítači, přenášené nebo uložené. Existují však data, která existují i ​​v typech objednávek. Data mohou být čísla nebo texty napsané na kus papíru ve formě bitů a bajtů uložených v paměti elektronických zařízení nebo fakta uložená v mysli člověka. Jak se svět začal modernizovat, tato data se stala významným aspektem každodenního života každého člověka a různé implementace jim umožnily ukládat je jinak.

Data je sbírka faktů a čísel nebo soubor hodnot nebo hodnot určitého formátu, který odkazuje na jednu sadu hodnot položek. Datové položky jsou pak klasifikovány do podpoložek, což je skupina položek, které nejsou známy jako jednoduchá primární forma položky.

Uvažujme příklad, kdy lze jméno zaměstnance rozdělit na tři podpoložky: First, Middle a Last. Nicméně ID přidělené zaměstnanci bude obecně považováno za jednu položku.

Úvod do datových struktur

Obrázek 1: Reprezentace datových položek

Ve výše uvedeném příkladu jsou položky jako ID, Věk, Pohlaví, První, Prostřední, Poslední, Ulice, Lokalita atd. základní datové položky. Naproti tomu Název a Adresa jsou datové položky skupiny.

Co je datová struktura?

Datová struktura je obor informatiky. Studium struktury dat nám umožňuje porozumět organizaci dat a řízení toku dat za účelem zvýšení efektivity jakéhokoli procesu nebo programu. Struktura dat je zvláštní způsob ukládání a organizace dat v paměti počítače, takže tato data lze v případě potřeby snadno načíst a v budoucnu efektivně využít. Data lze spravovat různými způsoby, například logický nebo matematický model pro konkrétní organizaci dat je známý jako datová struktura.

Rozsah konkrétního datového modelu závisí na dvou faktorech:

  1. Nejprve musí být do struktury načten natolik, aby odrážel definitivní korelaci dat s objektem reálného světa.
  2. Zadruhé, tvorba by měla být tak přímočará, že se lze přizpůsobit tak, aby data zpracovávala efektivně, kdykoli je to nutné.

Některé příklady datových struktur jsou pole, propojené seznamy, zásobník, fronta, stromy atd. Datové struktury jsou široce používány téměř ve všech aspektech informatiky, tj. v designu kompilátorů, operačních systémech, grafice, umělé inteligenci a mnoha dalších.

Datové struktury jsou hlavní součástí mnoha algoritmů počítačové vědy, protože umožňují programátorům efektivně spravovat data. Hraje klíčovou roli při zlepšování výkonu programu nebo softwaru, protože hlavním cílem softwaru je ukládat a získávat uživatelská data co nejrychleji.

Algoritmus pro binární vyhledávání

Základní terminologie související s datovými strukturami

Datové struktury jsou stavebními kameny jakéhokoli softwaru nebo programu. Výběr vhodné datové struktury pro program je pro programátora extrémně náročný úkol.

Níže jsou uvedeny některé základní terminologie používané vždy, když se jedná o datové struktury:

    Data:Data můžeme definovat jako elementární hodnotu nebo soubor hodnot. Například jméno a ID zaměstnance jsou údaje související se zaměstnancem.Datové položky:Jedna jednotka hodnoty je známá jako datová položka.Položky skupiny:Datové položky, které mají podřízené datové položky, se nazývají skupinové položky. Například jméno zaměstnance může mít jméno, prostřední jméno a příjmení.Základní položky:Datové položky, které nelze rozdělit na podpoložky, se nazývají základní položky. Například ID zaměstnance.Entita a atribut:Třída určitých objektů je reprezentována entitou. Skládá se z různých atributů. Každý atribut symbolizuje specifickou vlastnost dané entity. Například,
Atributy ID název Rod Pracovní pozice
Hodnoty 1234 Stacey M. Hillová ženský Vývojář softwaru

Entity s podobnými atributy tvoří an Sada entit . Každý atribut množiny entit má rozsah hodnot, množinu všech možných hodnot, které by mohly být přiřazeny konkrétnímu atributu.

Termín „informace“ se někdy používá pro data s danými atributy smysluplných nebo zpracovaných dat.

    Pole:Jediná základní jednotka informace symbolizující atribut entity je známá jako pole.Záznam:Soubor různých datových položek se nazývá záznam. Pokud například mluvíme o entitě zaměstnance, pak její jméno, id, adresa a pracovní pozice mohou být seskupeny tak, aby vytvořily záznam pro zaměstnance.Soubor:Soubor různých záznamů jednoho typu entity se nazývá soubor. Pokud je například 100 zaměstnanců, bude v souvisejícím souboru 25 záznamů obsahujících údaje o každém zaměstnanci.

Pochopení potřeby datových struktur

Vzhledem k tomu, že aplikace jsou stále složitější a množství dat se každým dnem zvyšuje, může to vést k problémům s vyhledáváním dat, rychlostí zpracování, zpracováním více požadavků a mnoha dalšími. Datové struktury podporují různé metody pro efektivní organizaci, správu a ukládání dat. Pomocí datových struktur můžeme snadno procházet datové položky. Datové struktury poskytují efektivitu, znovupoužitelnost a abstrakci.

Proč bychom se měli učit datové struktury?

  1. Datové struktury a algoritmy jsou dva klíčové aspekty informatiky.
  2. Datové struktury nám umožňují organizovat a ukládat data, zatímco algoritmy nám umožňují tato data smysluplně zpracovávat.
  3. Učení se datových struktur a algoritmů nám pomůže stát se lepšími programátory.
  4. Budeme schopni napsat kód, který bude efektivnější a spolehlivější.
  5. Budeme také schopni rychleji a efektivněji řešit problémy.

Pochopení cílů datových struktur

Datové struktury splňují dva doplňkové cíle:

    Správnost:Datové struktury jsou navrženy tak, aby správně fungovaly pro všechny druhy vstupů na základě oblasti zájmu. Správně řečeno, správnost tvoří primární cíl datové struktury, který vždy závisí na problémech, které má datová struktura řešit.Účinnost:Datové struktury také vyžadují, aby byly efektivní. Měl by zpracovávat data rychle bez využití mnoha počítačových zdrojů, jako je paměťový prostor. Ve stavu reálného času je účinnost datové struktury klíčovým faktorem při určování úspěchu a neúspěchu procesu.

Pochopení některých klíčových funkcí datových struktur

Některé z významných funkcí datových struktur jsou:

    Robustnost:Obecně se všichni počítačoví programátoři snaží vytvářet software, který poskytuje správný výstup pro každý možný vstup spolu s efektivním prováděním na všech hardwarových platformách. Tento typ robustního softwaru musí spravovat platné i neplatné vstupy.Přizpůsobivost:Vytváření softwarových aplikací, jako jsou webové prohlížeče, textové procesory a internetový vyhledávač, zahrnuje obrovské softwarové systémy, které vyžadují správnou a efektivní práci nebo provádění po mnoho let. Software se navíc vyvíjí díky vznikajícím technologiím nebo neustále se měnícím podmínkám na trhu.Opětovná použitelnost:Funkce jako opětovné použití a přizpůsobivost jdou ruku v ruce. Je známo, že programátor potřebuje mnoho zdrojů k vytvoření jakéhokoli softwaru, což z něj činí nákladný podnik. Pokud je však software vyvíjen opakovaně použitelným a přizpůsobitelným způsobem, lze jej použít ve většině budoucích aplikací. Spuštěním kvalitních datových struktur je tedy možné vytvořit opakovaně použitelný software, který se zdá být nákladově efektivní a časově úsporný.

Klasifikace datových struktur

Datová struktura poskytuje strukturovanou sadu proměnných, které spolu navzájem souvisí různými způsoby. Tvoří základ programovacího nástroje, který označuje vztah mezi datovými prvky a umožňuje programátorům efektivně zpracovávat data.

Datové struktury můžeme rozdělit do dvou kategorií:

  1. Primitivní datová struktura
  2. Neprimitivní datová struktura

Následující obrázek ukazuje různé klasifikace datových struktur.

Úvod do datových struktur

Obrázek 2: Klasifikace datových struktur

Primitivní datové struktury

    Primitivní datové strukturyjsou datové struktury sestávající z čísel a znaků, které přicházejí vestavěný do programů.
  1. S těmito datovými strukturami lze manipulovat nebo je ovládat přímo instrukcemi na úrovni stroje.
  2. Základní datové typy jako Integer, Float, Character , a Boolean spadají pod primitivní datové struktury.
  3. Tyto datové typy se také nazývají Jednoduché datové typy , protože obsahují znaky, které nelze dále dělit

Neprimitivní datové struktury

    Neprimitivní datové strukturyjsou datové struktury odvozené od primitivních datových struktur.
  1. S těmito datovými strukturami nelze manipulovat nebo je ovládat přímo instrukcemi na úrovni stroje.
  2. Těžištěm těchto datových struktur je vytvoření sady datových prvků, které jsou buď homogenní (stejný datový typ) popř heterogenní (různé datové typy).
  3. Na základě struktury a uspořádání dat můžeme tyto datové struktury rozdělit do dvou podkategorií -
    1. Lineární datové struktury
    2. Nelineární datové struktury

Lineární datové struktury

Datová struktura, která zachovává lineární spojení mezi svými datovými prvky, se nazývá lineární datová struktura. Uspořádání dat je provedeno lineárně, kde každý prvek se skládá z následníků a předchůdců kromě prvního a posledního datového prvku. To však nemusí být nutně pravda v případě paměti, protože uspořádání nemusí být sekvenční.

Na základě alokace paměti se lineární datové struktury dále dělí na dva typy:

    Statické datové struktury:Datové struktury s pevnou velikostí jsou známé jako statické datové struktury. Paměť pro tyto datové struktury je alokována v době kompilátoru a jejich velikost nemůže uživatel po kompilaci změnit; data v nich uložená však lze změnit.
    The Pole je nejlepším příkladem statické datové struktury, protože má pevnou velikost a její data lze později upravit.Dynamické datové struktury:Datové struktury s dynamickou velikostí jsou známé jako dynamické datové struktury. Paměť těchto datových struktur je alokována v době běhu a jejich velikost se během běhu kódu mění. Kromě toho může uživatel během běhu kódu měnit velikost i datové prvky uložené v těchto datových strukturách.
    Propojené seznamy, zásobníky , a Ocasy jsou běžné příklady dynamických datových struktur

Typy lineárních datových struktur

Níže je uveden seznam lineárních datových struktur, které obecně používáme:

1. Pole

An Pole je datová struktura používaná ke shromažďování více datových prvků stejného datového typu do jedné proměnné. Namísto ukládání více hodnot stejných datových typů do samostatných názvů proměnných bychom je mohli uložit všechny dohromady do jedné proměnné. Toto tvrzení neznamená, že budeme muset sjednotit všechny hodnoty stejného datového typu v libovolném programu do jednoho pole tohoto datového typu. Často však nastanou situace, kdy některé specifické proměnné stejného datového typu spolu navzájem souvisí způsobem vhodným pro pole.

Pole je seznam prvků, kde každý prvek má v seznamu jedinečné místo. Datové prvky pole sdílejí stejný název proměnné; každý však nese jiné indexové číslo nazývané dolní index. K libovolnému datovému prvku ze seznamu můžeme přistupovat pomocí jeho umístění v seznamu. Klíčovou vlastností polí, které je třeba pochopit, je tedy to, že data jsou uložena v souvislých paměťových místech, což uživatelům umožňuje procházet datovými prvky pole pomocí jejich příslušných indexů.

řetězec délky
Úvod do datových struktur

Obrázek 3 Pole

Pole lze rozdělit do různých typů:

    Jednorozměrné pole:Pole s pouze jedním řádkem datových prvků se nazývá jednorozměrné pole. Je uložen ve vzestupném úložném místě.Dvourozměrné pole:Pole skládající se z více řádků a sloupců datových prvků se nazývá dvourozměrné pole. Je také známý jako Matrix.Vícerozměrné pole:Multidimenzionální pole můžeme definovat jako pole polí. Vícerozměrná pole nejsou omezena na dva indexy nebo dva rozměry, protože mohou obsahovat tolik indexů, kolik je podle potřeby.

Některé aplikace Array:

  1. Můžeme uložit seznam datových prvků patřících ke stejnému datovému typu.
  2. Pole funguje jako pomocné úložiště pro další datové struktury.
  3. Pole také pomáhá ukládat datové prvky binárního stromu pevného počtu.
  4. Pole také funguje jako úložiště matic.

2. Propojené seznamy

A Spojový seznam je dalším příkladem lineární datové struktury používané k dynamickému ukládání kolekce datových prvků. Datové prvky v této datové struktuře jsou reprezentovány uzly, spojenými pomocí odkazů nebo ukazatelů. Každý uzel obsahuje dvě pole, informační pole se skládá ze skutečných dat a pole ukazatele se skládá z adresy následujících uzlů v seznamu. Ukazatel posledního uzlu propojeného seznamu se skládá z nulového ukazatele, protože neukazuje na nic. Na rozdíl od polí může uživatel dynamicky upravovat velikost propojeného seznamu podle požadavků.

Úvod do datových struktur

Obrázek 4. Propojený seznam

Propojené seznamy lze rozdělit do různých typů:

    Jednotlivě propojený seznam:Jednotlivě propojený seznam je nejběžnějším typem propojeného seznamu. Každý uzel má data a pole ukazatele obsahující adresu dalšího uzlu.Dvojitě propojený seznam:Dvojitě propojený seznam se skládá z informačního pole a dvou polí ukazatele. Informační pole obsahuje data. První pole ukazatele obsahuje adresu předchozího uzlu, zatímco další pole ukazatele obsahuje odkaz na další uzel. Můžeme se tedy pohybovat oběma směry (dozadu i vpřed).Circular Linked List:Kruhový propojený seznam je podobný samostatnému propojenému seznamu. Jediný klíčový rozdíl je v tom, že poslední uzel obsahuje adresu prvního uzlu a tvoří kruhovou smyčku v seznamu Circular Linked List.

Některé aplikace propojených seznamů:

  1. Propojené seznamy nám pomáhají implementovat zásobníky, fronty, binární stromy a grafy předem definované velikosti.
  2. Můžeme také implementovat funkci operačního systému pro dynamickou správu paměti.
  3. Propojené seznamy také umožňují polynomiální implementaci pro matematické operace.
  4. Můžeme použít Circular Linked List k implementaci operačních systémů nebo funkcí aplikací, které Round Robin provádění úkolů.
  5. Kruhový propojený seznam je také užitečný v prezentaci, kde se uživatel po zobrazení posledního snímku musí vrátit na první snímek.
  6. Dvojitě propojený seznam se používá k implementaci tlačítek vpřed a vzad v prohlížeči pro pohyb vpřed a vzad na otevřených stránkách webu.

3. Hromady

A Zásobník je lineární datová struktura, která následuje LIFO (Last In, First Out) princip, který umožňuje operace jako vkládání a mazání z jednoho konce zásobníku, tj. Top. Zásobníky lze implementovat pomocí souvislé paměti, pole a nesouvislé paměti, propojeného seznamu. Skutečnými příklady stacků jsou hromady knih, balíček karet, hromady peněz a mnoho dalších.

Úvod do datových struktur

Obrázek 5. Příklad zásobníku ze skutečného života

Výše uvedený obrázek představuje skutečný příklad zásobníku, kde se operace provádějí pouze z jednoho konce, jako je vkládání a vyjímání nových knih z horní části zásobníku. To znamená, že vkládání a mazání v zásobníku lze provést pouze z horní části zásobníku. V daný okamžik máme přístup pouze k vrcholům zásobníku.

Primární operace v zásobníku jsou následující:

powershell menší nebo rovno
    TAM:Operace pro vložení nového prvku do zásobníku se nazývá operace Push.Pop:Operace odstranění nebo odstranění prvků ze zásobníku se nazývá operace Pop.
Úvod do datových struktur

Obrázek 6. Zásobník

Některé aplikace stacků:

  1. Zásobník se používá jako dočasná struktura úložiště pro rekurzivní operace.
  2. Stack se také používá jako pomocná struktura úložiště pro volání funkcí, vnořené operace a odložené/odložené funkce.
  3. Volání funkcí můžeme spravovat pomocí Stacks.
  4. Zásobníky se také používají k vyhodnocení aritmetických výrazů v různých programovacích jazycích.
  5. Zásobníky jsou také užitečné při převodu infixových výrazů na postfixové výrazy.
  6. Zásobníky nám umožňují zkontrolovat syntaxi výrazu v programovacím prostředí.
  7. Můžeme spárovat závorky pomocí Stacks.
  8. Zásobníky lze použít k obrácení řetězce.
  9. Zásobníky jsou užitečné při řešení problémů založených na backtrackingu.
  10. Hromady můžeme použít v hloubkovém vyhledávání v grafu a procházení stromů.
  11. Zásobníky se také používají ve funkcích operačního systému.
  12. Zásobníky se také používají ve funkcích UNDO a REDO v úpravě.

4. Ocasy

A Fronta je lineární datová struktura podobná Stack s určitými omezeními na vkládání a mazání prvků. Vložení prvku do fronty se provádí na jednom konci a odstranění se provádí na druhém nebo opačném konci. Můžeme tedy dojít k závěru, že datová struktura Queue se řídí principem FIFO (First In, First Out) pro manipulaci s datovými prvky. Implementaci front lze provést pomocí polí, propojených seznamů nebo zásobníků. Některé příklady front ze skutečného života jsou fronta u pokladní přepážky, eskalátor, myčka aut a mnoho dalších.

Úvod do datových struktur

Obrázek 7. Reálný příklad fronty

Obrázek nahoře je skutečná ilustrace přepážky vstupenek do kina, která nám může pomoci porozumět frontě, kde je vždy první obsloužený zákazník, který přijde jako první. Zákazník, který dorazí jako poslední, bude nepochybně obsluhován jako poslední. Oba konce fronty jsou otevřené a mohou provádět různé operace. Dalším příkladem je linka food courtu, kde je zákazník vložen ze zadní části, zatímco zákazník je odstraněn na přední straně po poskytnutí služby, o kterou požádal.

Níže jsou uvedeny primární operace fronty:

jak převést řetězec na int v java
    Zařadit do fronty:Vložení nebo přidání některých datových prvků do fronty se nazývá Enqueue. Vkládání prvku se vždy provádí pomocí zadního ukazatele.Dequeue:Odstranění nebo odebrání datových prvků z fronty se nazývá dequeue. Odstranění prvku se vždy provádí pomocí předního ukazatele.
Úvod do datových struktur

Postavení 8. Fronta

Některé aplikace front:

  1. Fronty se obecně používají v operaci prohledávání šířky v Graphs.
  2. Fronty se také používají v operacích plánovače úloh operačních systémů, jako je fronta vyrovnávací paměti klávesnice k ukládání kláves stisknutých uživateli a fronta tiskové vyrovnávací paměti k ukládání dokumentů vytištěných tiskárnou.
  3. Fronty jsou zodpovědné za plánování CPU, plánování úloh a plánování disku.
  4. Prioritní fronty se používají při operacích stahování souborů v prohlížeči.
  5. Fronty se také používají k přenosu dat mezi periferními zařízeními a CPU.
  6. Fronty jsou také zodpovědné za zpracování přerušení generovaných uživatelskými aplikacemi pro CPU.

Nelineární datové struktury

Nelineární datové struktury jsou datové struktury, kde datové prvky nejsou uspořádány v sekvenčním pořadí. Zde vkládání a odstraňování dat není možné lineárním způsobem. Mezi jednotlivými datovými položkami existuje hierarchický vztah.

Typy nelineárních datových struktur

Níže je uveden seznam nelineárních datových struktur, které obecně používáme:

1. Stromy

Strom je nelineární datová struktura a hierarchie obsahující kolekci uzlů tak, že každý uzel stromu ukládá hodnotu a seznam odkazů na jiné uzly („děti“).

Stromová datová struktura je specializovaná metoda pro uspořádání a shromažďování dat v počítači, aby byla efektivněji využívána. Obsahuje centrální uzel, strukturální uzly a dílčí uzly spojené hranami. Můžeme také říci, že stromová datová struktura se skládá ze spojených kořenů, větví a listů.

Úvod do datových struktur

Obrázek 9. Strom

Stromy lze rozdělit do několika typů:

    Binární strom:Stromová datová struktura, kde každý nadřazený uzel může mít maximálně dva potomky, se nazývá binární strom.Binární vyhledávací strom:Binární vyhledávací strom je stromová datová struktura, kde můžeme snadno udržovat seřazený seznam čísel.AVL strom:AVL Tree je samovyrovnávací binární vyhledávací strom, kde každý uzel uchovává dodatečné informace známé jako Balance Factor, jehož hodnota je buď -1, 0 nebo +1.B-strom:B-strom je speciální typ samovyvažujícího binárního vyhledávacího stromu, kde každý uzel sestává z více klíčů a může mít více než dva potomky.

Některé aplikace stromů:

  1. Stromy implementují hierarchické struktury v počítačových systémech, jako jsou adresáře a systémy souborů.
  2. Stromy se také používají k implementaci navigační struktury webu.
  3. Můžeme generovat kód jako Huffmanův kód pomocí Stromů.
  4. Stromy jsou také užitečné při rozhodování v herních aplikacích.
  5. Stromy jsou zodpovědné za implementaci prioritních front pro funkce plánování OS založené na prioritách.
  6. Stromy jsou také zodpovědné za analýzu výrazů a příkazů v kompilátorech různých programovacích jazyků.
  7. Stromy můžeme použít k ukládání datových klíčů pro indexování pro Database Management System (DBMS).
  8. Spanning Trees nám umožňuje směrovat rozhodnutí v počítačových a komunikačních sítích.
  9. Stromy se také používají v algoritmu hledání cesty implementovaném v aplikacích umělé inteligence (AI), robotiky a videoher.

2. Grafy

Graf je dalším příkladem nelineární datové struktury obsahující konečný počet uzlů nebo vrcholů a hran, které je spojují. Grafy se používají k řešení problémů reálného světa, ve kterém označují problémovou oblast jako síť, jako jsou sociální sítě, obvodové sítě a telefonní sítě. Například uzly nebo vrcholy grafu mohou představovat jednoho uživatele v telefonní síti, zatímco hrany představují spojení mezi nimi prostřednictvím telefonu.

Datová struktura Graph G je považována za matematickou strukturu složenou ze sady vrcholů V a sady hran E, jak je uvedeno níže:

G = (V,E)

Úvod do datových struktur

Obrázek 10. Graf

Výše uvedený obrázek představuje graf se sedmi vrcholy A, B, C, D, E, F, G a deseti hranami [A, B], [A, C], [B, C], [B, D], [B, E], [C, D], [D, E], [D, F], [E, F] a [E, G].

V závislosti na poloze vrcholů a hran lze grafy rozdělit do různých typů:

v.další java
    Nulový graf:Graf s prázdnou sadou hran se nazývá nulový graf.Triviální graf:Graf, který má pouze jeden vrchol, se nazývá triviální graf.Jednoduchý graf:Graf bez vlastních smyček ani více hran se nazývá jednoduchý graf.Více grafů:O grafu se říká, že je Multi, pokud se skládá z více hran, ale bez vlastních smyček.Pseudograf:Graf s vlastními smyčkami a více hranami se nazývá pseudograf.Neorientovaný graf:Graf skládající se z neorientovaných hran je známý jako neorientovaný graf.Režie grafu:Graf sestávající z nasměrovaných hran mezi vrcholy je známý jako směrovaný graf.Připojený graf:Graf s alespoň jednou cestou mezi každým párem vrcholů se nazývá spojený graf.Odpojený graf:Graf, kde neexistuje žádná cesta mezi alespoň jedním párem vrcholů, se nazývá Odpojený graf.Běžný graf:Graf, kde všechny vrcholy mají stejný stupeň, se nazývá regulární graf.Kompletní graf:Graf, ve kterém všechny vrcholy mají hranu mezi každým párem vrcholů, se nazývá úplný graf.Graf cyklu:O grafu se říká, že je to cyklus, pokud má alespoň tři vrcholy a hrany, které tvoří cyklus.Cyklický graf:O grafu se říká, že je cyklický tehdy a jen tehdy, pokud existuje alespoň jeden cyklus.Acyklický graf:Graf s nulovými cykly se nazývá acyklický graf.Konečný graf:Graf s konečným počtem vrcholů a hran je známý jako konečný graf.Nekonečný graf:Graf s nekonečným počtem vrcholů a hran je známý jako nekonečný graf.Bipartitní graf:Graf, kde mohou být vrcholy rozděleny do nezávislých množin A a B a všechny vrcholy množiny A by měly být spojeny pouze s vrcholy přítomnými v množině B s některými hranami, se nazývá bipartitní graf.Rovinný graf:O grafu se říká, že je rovinný, pokud jej můžeme nakreslit v jedné rovině se dvěma protínajícími se hranami.Eulerův graf:O grafu se říká, že je Eulerův právě tehdy, když jsou všechny vrcholy sudé stupně.Hamiltonovský graf:Propojený graf sestávající z hamiltonovského okruhu je známý jako hamiltonovský graf.

Některé aplikace grafů:

  1. Grafy nám pomáhají reprezentovat trasy a sítě v dopravních, cestovních a komunikačních aplikacích.
  2. Pro zobrazení tras v GPS se používají grafy.
  3. Grafy nám také pomáhají reprezentovat propojení v sociálních sítích a dalších síťových aplikacích.
  4. Grafy se používají v mapových aplikacích.
  5. Grafy jsou zodpovědné za reprezentaci uživatelských preferencí v aplikacích elektronického obchodování.
  6. Grafy se také používají v inženýrských sítích za účelem identifikace problémů, s nimiž se místní nebo obecní podniky setkávají.
  7. Grafy také pomáhají řídit využití a dostupnost zdrojů v organizaci.
  8. Grafy se také používají k vytváření map odkazů na dokumenty na webových stránkách, aby bylo možné zobrazit propojení mezi stránkami prostřednictvím hypertextových odkazů.
  9. Grafy se také používají v robotických pohybech a neuronových sítích.

Základní operace s datovými strukturami

V následující části probereme různé typy operací, které můžeme provádět při manipulaci s daty v každé datové struktuře:

    Průjezd:Procházení datové struktury znamená přístup ke každému datovému prvku přesně jednou, aby mohl být spravován. Například při tisku jmen všech zaměstnanců v oddělení je vyžadováno procházení.Vyhledávání:Hledání je další operace datové struktury, která znamená najít umístění jednoho nebo více datových prvků, které splňují určitá omezení. Takový datový prvek může nebo nemusí být přítomen v dané sadě datových prvků. Například můžeme pomocí vyhledávací operace najít jména všech zaměstnanců, kteří mají praxi delší než 5 let.Vložení:Vložení znamená vložení nebo přidání nových datových prvků do kolekce. Operaci vložení můžeme například použít k přidání podrobností o novém zaměstnanci, kterého společnost nedávno přijala.Vymazání:Vymazáním se rozumí odstranění nebo smazání konkrétního datového prvku z daného seznamu datových prvků. Operaci mazání můžeme například použít k odstranění jména zaměstnance, který opustil úlohu.řazení:Třídění znamená uspořádat datové prvky buď vzestupně nebo sestupně v závislosti na typu aplikace. Můžeme například použít operaci třídění k seřazení jmen zaměstnanců v oddělení v abecedním pořadí nebo k odhadu tří nejlepších výkonů v měsíci seřazením výkonu zaměstnanců v sestupném pořadí a extrahováním podrobností o třech nejlepších.Spojit:Sloučit znamená spojit datové prvky dvou seřazených seznamů za účelem vytvoření jediného seznamu seřazených datových prvků.Vytvořit:Create je operace používaná k rezervaci paměti pro datové prvky programu. Tuto operaci můžeme provést pomocí deklaračního příkazu. Vytváření datové struktury může probíhat buďto během:
    1. Doba kompilace
    2. Doba běhu
      Například, malloc() Funkce se používá v jazyce C k vytvoření datové struktury.
    Výběr:Výběr znamená výběr konkrétních dat z dostupných dat. Můžeme vybrat jakákoli konkrétní data zadáním podmínek uvnitř smyčky.Aktualizace:Operace Aktualizace nám umožňuje aktualizovat nebo upravovat data v datové struktuře. Můžeme také aktualizovat jakákoli konkrétní data zadáním některých podmínek uvnitř smyčky, jako je operace výběru.Rozdělení:Operace Splitting nám umožňuje rozdělit data do různých podčástí, což zkracuje celkovou dobu dokončení procesu.

Pochopení abstraktního datového typu

Podle Národní institut pro standardy a technologie (NIST) , datová struktura je uspořádání informací, obecně v paměti, pro lepší účinnost algoritmu. Datové struktury zahrnují propojené seznamy, zásobníky, fronty, stromy a slovníky. Mohou to být také teoretické entity, jako je jméno a adresa osoby.

Z výše uvedené definice můžeme usoudit, že operace v datové struktuře zahrnují:

  1. Vysoká úroveň abstrakcí, jako je přidání nebo odstranění položky ze seznamu.
  2. Vyhledávání a řazení položky v seznamu.
  3. Přístup k položce s nejvyšší prioritou v seznamu.

Kdykoli datová struktura provádí takové operace, je známá jako an Abstraktní datový typ (ADT) .

Můžeme jej definovat jako soubor datových prvků spolu s operacemi s daty. Termín „abstrakt“ odkazuje na skutečnost, že data a základní operace na nich definované jsou studovány nezávisle na jejich implementaci. Zahrnuje to, co můžeme s daty dělat, nikoli jak to můžeme udělat.

Implementace ADI obsahuje strukturu úložiště za účelem uložení datových prvků a algoritmů pro základní operace. Všechny datové struktury, jako je pole, propojený seznam, fronta, zásobník atd., jsou příklady ADT.

Pochopení výhod používání ADT

V reálném světě se programy vyvíjejí jako důsledek nových omezení nebo požadavků, takže úprava programu obecně vyžaduje změnu jedné nebo více datových struktur. Předpokládejme například, že chceme do záznamu zaměstnance vložit nové pole, abychom měli přehled o dalších podrobnostech o každém zaměstnanci. V takovém případě můžeme zvýšit efektivitu programu tím, že nahradíme Array strukturou Linked. V takové situaci je přepisování každé procedury, která využívá upravenou strukturu, nevhodné. Lepší alternativou je tedy oddělení datové struktury od jejích implementačních informací. Toto je princip použití abstraktních datových typů (ADT).

Některé aplikace datových struktur

Níže jsou uvedeny některé aplikace datových struktur:

  1. Datové struktury pomáhají při organizaci dat v paměti počítače.
  2. Datové struktury také pomáhají při reprezentaci informací v databázích.
  3. Datové struktury umožňují implementaci algoritmů pro vyhledávání v datech (například vyhledávač).
  4. Můžeme použít datové struktury k implementaci algoritmů pro manipulaci s daty (například textové procesory).
  5. Můžeme také implementovat algoritmy pro analýzu dat pomocí datových struktur (například data mining).
  6. Datové struktury podporují algoritmy pro generování dat (například generátor náhodných čísel).
  7. Datové struktury také podporují algoritmy pro kompresi a dekomprimaci dat (například utilita zip).
  8. Můžeme také použít datové struktury k implementaci algoritmů pro šifrování a dešifrování dat (například bezpečnostní systém).
  9. S pomocí Data Structures můžeme vytvořit software, který dokáže spravovat soubory a adresáře (například správce souborů).
  10. Můžeme také vyvinout software, který dokáže vykreslovat grafiku pomocí datových struktur. (Například webový prohlížeč nebo 3D renderovací software).

Kromě těch, jak již bylo zmíněno, existuje mnoho dalších aplikací datových struktur, které nám mohou pomoci vytvořit jakýkoli požadovaný software.