ADT STROM Lukáš Foldýna

Podobné dokumenty
AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Radek Mařík

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Základní datové struktury III: Stromy, haldy

Stromy, haldy, prioritní fronty

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

Definice. B-stromu. B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí:

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

TÉMATICKÝ OKRUH TZD, DIS a TIS

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Binární Vyhledávací Stromy, u kterých je. složitost operací v nejhorším. rovná O(log n)

Algoritmy a datové struktury

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom

07 Základní pojmy teorie grafů

Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace

Algoritmizace prostorových úloh

5 Rekurze a zásobník. Rekurzivní volání metody

Algoritmy výpočetní geometrie

Stromy. Jan Hnilica Počítačové modelování 14

a) b) c) Radek Mařík

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání.

Binární vyhledávací stromy

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Programování v C++ 1, 16. cvičení

Binární vyhledávací stromy II

Výroková a predikátová logika - II

Základy umělé inteligence

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Datové struktury Úvod

Teorie grafů. zadání úloh. letní semestr 2008/2009. Poslední aktualizace: 19. května First Prev Next Last Go Back Full Screen Close Quit

Algoritmizace prostorových úloh

Výroková a predikátová logika - III

Dynamické datové struktury III.

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

GRAFY A GRAFOVÉ ALGORITMY

Operační výzkum. Síťová analýza. Metoda CPM.

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)

Operace na datových strukturách

Datové typy a struktury

Výroková a predikátová logika - III

Maturitní téma: Programovací jazyk JAVA

PŘEDNÁŠKA 2 POSLOUPNOSTI

Stromy. Jan Kybic.

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

TGH07 - Chytré stromové datové struktury

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

H {{u, v} : u,v U u v }

Konvexní obal a množina

Operace na datových strukturách

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole.

Komprese dat (Komprimace dat)

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

10 Přednáška ze

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Teória grafov. Stromy a kostry 1. časť

Matematika III 10. přednáška Stromy a kostry

1 Topologie roviny a prostoru

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132

Algoritmizace prostorových úloh

Matematická analýza 1

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

5 Orientované grafy, Toky v sítích

Stromové struktury v relační databázi

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

Teorie grafů Jirka Fink

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

B i n á r n í r e l a c e. Patrik Kavecký, Radomír Hamřík

10 Podgrafy, isomorfismus grafů

3 Algoritmy řazení. prvku a 1 je rovněž seřazená.

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Binární vyhledávací stromy pokročilé partie

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

Algoritmy na ohodnoceném grafu

Grafové algoritmy. Programovací techniky

Základy algoritmizace c2007 Michal Krátký, Jiří Dvorský 1/57

Úvod do teorie grafů

Grafové algoritmy. Programovací techniky

Cílem kapitoly je opakování a rozšíření středoškolských znalostí v oblasti teorie množin.

B-Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Algoritmy a datové struktury I, přednáška prof. RNDr. Lud ka Kučery, DrSc. Poznámky sepsal Robert Husák. Letní semestr 2009/2010

Dynamické datové struktury IV.

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Transkript:

ADT STROM Lukáš Foldýna 26. 05. 2006 Stromy mají široké uplatnění jako datové struktury pro různé algoritmy. Jsou to matematické abstrakce množin, kterou v běžném životě používáme velice často. Příkladem může být rodokmen, sportovní soutěž založená na vylučovacím principu, kdy dál postupuje jeden ze soupeřů. V počítači je strom, datová struktura,která uchovává objekty (prvky) hierarchicky ve vztahu předchůdce-následovník (otec-syn). Příklady použití reprezentace znalostí, stavového prostoru v umělé inteligenci popis scény v oblasti zpracování a analýza obrazu, počítačová grafika vyhledávací stromy v databázových systémech rozhodovací stromy expertní systémy organizace adresářů a souborů v souborovém systému OS, komprese dat (Hufmannovy kódovací stromy, fraktálová komprese) Definice 1. Strom T je konečná množina jednoho nebo více prvků (uzlů), z nichž jeden je označen jako root (kořen) a zbývající uzly jsou rozděleny do n 0 disjunktních podmnožin T1,T2, Tk, které jsou také stromy a jejichž kořeny r1,r2,,rk jsou následníky kořene root. 2. Strom je graf, ve kterém existuje pouze jedna cesta z uzlu root (kořene), do kteréhokoliv dalšího uzlu grafu (neobsahuje cykly)

Základní pojmy Kořen je uzel, který nemá předchůdce, ve stromu může být pouze jediný kořen. Listy (vnější uzly) jsou uzly, které nemají žádného následníka. Vnitřní uzly jsou uzly, které mají alespoň jednoho následníka. Cesta je posloupnost po sobě jdoucích vrcholů, které jsou spojeny hranou. Délka cesty je počet hran cesty. Délku cesty z vrcholu k sobě samému potom můžeme definovat jako nulovou. Ke každému vrcholu je z kořene právě jedna cesta. Hloubka uzlu je délka cesty od kořene do uzlu. Výška stromu je délka cesty od kořene k nejhlubšímu uzlu zvětšená o jednotku. Prvek stromu se nazývá uzel. Není-li strom prázdný, tj. obsahuje-li alespoň jeden uzel, pak existuje právě jeden specifický uzel kořen stromu. Mezi dvěma různými uzly může existovat vazba, pro kterou platí, že jeden z daných uzlů je otec a druhý syn. Každý uzel má právě jednoho otce. Výjimku tvoří pouze kořen, pro který žádný otec není definován. Z každého uzlu lze po vazbách navštívit libovolný jiný uzel strom je spojitý. Začneme-li procházet od libovolného pevně daného uzlu vazby stromu ve směru od otce k synovy, nikdy nemůžeme navštívit uzel, ve kterém jsme již byli strom neobsahuje cykly. Typy stromů Binární strom je kořen,který má v každém uzlu maximálně dva syny Plny binární strom je strom kde každý uzel má buď žádné nebo 2 siny

Kompletní binární strom je plný binární strom, který má všechny listy ve stejné hloubce Skoro kompletní binární strom je kde každý uzel musí mí s pravým synem i levého, ale levý muže být bez pravého Algoritmy pro vyhledávaní a úpravu stromu Binární vyhledávací strom pro jehož každý uzel platí, že jeho levý podstrom je buď prázdný, nebo sestává z uzlů, hodnoty jejichž klíčů jsou menší než hodnota klíče daného uzlu a podobně jeho pravý podstrom je buď prázdný, nebo sestává z uzlů, hodnoty jejichž klíčů jsou větší než hodnota klíče daného uzlu. Binární vyhledávací strom bude vypadat např. takto: AVL(Adelson-Velskii, Landis) strom (vyvážený strom) AVL strom je datová struktura pro uchovávání údajů a jejich vyhledávání. Pracuje v logaritmicky omezeném čase. Jedná se o samovyvažující se binární vyhledávací strom.

Vrchol má maximálně dva následníky (je to binární strom) V levém podstromu vrcholu jsou pouze vrcholy s menší hodnotou klíče V pravém podstromu vrcholu jsou pouze vrcholy s větší hodnotou klíče Délka nejdelší větve levého a pravého podstromu se liší nejvýše o 1 AVL strom bude vypadat např. takto: Red-black strom Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven červeně Listy(nil) jsou černé Červený uzel má pouze červené syny Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů Red-black strom bude vypadat např. takto:

Splay strom Rozšířený binární vyhledávací strom Rozšířený binární vyhledávací strom, tzv. splay strom, je datová struktura, kterou zkonstruovali a popsali na počátku 80. let minulého století Daniel Dominic Sleator a Robert Endre Tarjan. Spay strom vychází z binárního vyhledávacího stromu. Rozšíření na binární strom provedeme aplikací následujícího pravidla: Uzel binárního stromu může mít nejvýše dva přímé potomky. Nyní vložíme další přívlastek a vzniklý pojem binární vyhledávací strom definujeme stejnými pravidly jako strom binární, avšak s přidáním posledních dvou pravidel: Každý uzel obsahuje právě jednu charakteristickou hodnotu ordinálního typu, kterou nazýváme klíč. Potomky uzlu nazveme levý syn a pravý syn. Levý syn má vždy hodnotu klíče menší než jeho otec. U pravého potomka je tomu naopak, tj. hodnotu klíče má větší než jeho otec. Narozdíl od binárního vyhledávacího stromu se při každém přístupu do rozšířeného binárního vyhledávacího stromu provede automaticky také jistý specifický způsob přeuspořádání. Tato operace se v angličtině nazývá splay. Jejím cílem je přemístit uzel, na kterém je splaying prováděn, do kořene stromu. K tomu se využívá tzv. rotace. Operace splay je pak definována jako posloupnost těchto rotací.

B-tree B-tree je stromová datová struktura, používaná pro uchovávání dat a vyhledávání v nich. Operace přidání, vyjmutí i vyhledávání probíhají v logaritmicky omezeném čase. Tato struktura je často využívána pro databázové aplikace. B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí: 1. Počet klíčů v každém vnitřním uzlu, je o jednu menší než je počet následníků (synů) 2. Všechny listy jsou na stejné úrovni (mají stejnou hloubku) 3. Všechny uzly kromě kořene mají nejméně následníků(- 1 klíčů) 4. Kořen je buďto list, nebo má od 2 do m následníků 5. Žádný uzel neobsahuje více než m následníků (m-1 klíčů)