a) b) c) Radek Mařík

Podobné dokumenty
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

Radek Mařík

BINARY SEARCH TREE

BINARY SEARCH TREE

Návrh Designu: Radek Mařík

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

Datové struktury Úvod

Algoritmy a datové struktury

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

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í

Dynamické programování. Optimální binární vyhledávací strom

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

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Složitosti základních operací B + stromu

Binární vyhledávací stromy II

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

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

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

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

Stromy, haldy, prioritní fronty

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

R zné algoritmy mají r znou složitost

STACK

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

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

ADT STROM Lukáš Foldýna

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

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

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

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

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

Prioritní fronta, halda

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

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í

Návrh designu: Radek Mařík

Algoritmy výpočetní geometrie

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

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

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

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

Binární vyhledávací stromy

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

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

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

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

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

Rekurzivní algoritmy

f(x,y) = max ( f(x 1, y 1)+ f(x 1,y) ) + f(x,y 1) +1 jinak f(x,y,z) = f(x 1, y 1, z 1)+ f(x 1,y,z) + f(x,y 1,z) + f(x,y,z 1)+1 jinak

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

Standardní algoritmy vyhledávací.

Algoritmizace Hashing II. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Datové struktury 2: Rozptylovací tabulky

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

Úvod do teorie grafů

Dynamické datové struktury IV.

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

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

Spojové struktury. Spojová struktura (linked structure):

Dynamické datové struktury II.

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

Dynamické datové struktury III.

Předmět: Algoritmizace praktické aplikace

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Úvod do programování 10. hodina

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

1 Nejkratší cesta grafem

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Jméno:... St. Sk.:. Cvičící:.. Bodů ze cv.: (Tučná čísla indikují počet neuspěvších (z 50) v jednotlivých otázkách) 1.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

TGH07 - Chytré stromové datové struktury

Algoritmy I, složitost

Dynamické datové struktury I.

NPRG030 Programování I, 2018/19 1 / :03:07

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

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í:

Stromové struktury v relační databázi

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

6. Tahy / Kostry / Nejkratší cesty

Operace na datových strukturách

Stromy. Jan Kybic.

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

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

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

Implementace binárního stromu směrníky

Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x))

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

8. Rekurze. doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

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

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

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

Základy algoritmizace a programování

Stromové struktury v relační databázi

1. Binomiální haldy Zavedení binomiální haldy

Transkript:

2012-03-20 Radek Mařík

1. Čísla ze zadané posloupnosti postupně vkládejte do prázdného binárního vyhledávacího stromu (BVS), který nevyvažujte. Jak bude vypadat takto vytvořený BVS? Poté postupně odstraňte první tři prvky. Jak bude vypadat výsledný BVS? a) 14 24 5 13 1 3 22 10 19 11 b) 10 16 5 17 4 15 3 1 23 13 2 11 c) 17 4 15 2 5 9 1 12 3 19 16 18

2. Mějme klíče 1, 2, 3,..., n. Číslo n je liché. Nejprve vložíme do BVS všechny sudé klíče v rostoucím pořadí a pak všechny liché klíče také v rostoucím pořadí. Jaká bude hloubka výsledného stromu? Změnil by se nějak tvar stromu, kdybychom lichá čísla vkládali v náhodném pořadí?

3. BVS obsahuje 2 n 1 prvků a je vyvážený. Předpokládejte, že během operace Find stráví program v každém navštíveném uzlu právě 1 s a že další případné činnosti jsou v této době zahrnuty. Předpokládejte, že každý klíč v tomto BVS je vyhledáván stejně často a že jiné klíče se v něm nevyhledávají. Jaká je průměrná doba operace Find?

4. BVS obsahuje 2 n 1 prvků a je vyvážený. Předpokládejte, že během operace Find stráví program v každém navštíveném uzlu právě 1 s a že další případné činnosti jsou v této době zahrnuty. Předpokládejte, že každý klíč obsažený v tomto BVS je vyhledáván stejně často a že 50% operací Find vyhledává klíč, který se v tomto BVS nevyskytuje. Jaká je průměrná doba operace Find?

5. Je dán BVS s n uzly. Máme za úkol spočítat hodnotu součtu všech klíčů v tomto stromě. Jaká bude složitost této operace, když to uděláme efektivně?

6. V daném BVS máme smazat pomocí operace Delete všechny listy. Jaká bude asymptotická složitost této akce?

7. V daném BVS máme smazat pomocí operace Delete všechny uzly, které nejsou listy. Jaká bude asymptotická složitost této akce?

8. Uzel binárního binárního vyhledávacího stromu obsahuje tři složky: Klíč a ukazatele na pravého a levého potomka. Navrhněte rekurzívní funkci (vracející bool), která porovná, zda má dvojice stromů stejnou strukturu. Dva BVS považujeme za strukturně stejné, pokud se dají nakreslit tak, že po položení na sebe pozorovateli splývají, bez ohledu na to, jaká obsahují data.

9. Napište rekurzivní verze operací: TreeMinimum, která vrátí referenci na uzel s nejmenší hodnotou vbvs.

10. Napište funkci, která obrátí pořadí prvků v binárním vyhledávacím stromu. Obrácené pořadí znamená, že po výpisu v pořadí inorder (který neimplementujte!), budou prvky srovnány od největšího k nejmenšímu. Proveďte rekurzivně i nerekurzivně.

11. Napište funkci, jejímž vstupem bude ukazatel (=reference) na uzel X v BVS a výstupem ukazatel (=reference) na uzel s nejbližší vyšší hodnotou ve stromu.

12. Navrhněte algoritmus, který spojí dva BVS A a B. Spojení proběhne tak, že všechny uzly z B budou přesunuty do A, přičemž se nebudou vytvářet žádné nové uzly ani se nebudou žádné uzly mazat. Přesun proběhne jen manipulací s ukazateli. Předpokládejte, že v každém uzlu v A i v B je k dispozici ukazatel na rodičovský uzel.

13. Je dán BVS a klíč x. Máme určit, kolik je v tomto BVS takových klíčů z, pro které platí z < x/2. Jaká bude asymptotická složitost této operace za předpokladu, že v uzlech stromu neukládáme žádné další pomocné informace?

14. Je dán BVS a dvojice klíčů x, y (x < y). Máme určit, kolik je v tomto BVS takových klíčů z, pro které platí x < z < y. Jaká bude asymptotická složitost této operace za předpokladu, že v uzlech stromu neukládáme žádné další pomocné informace?

15. Operace R z původně vyváženého BVS opakovaně odstraňuje operací Delete vždy ten uzel, který má alespoň jednoho potomka a přitom klíč v odstraňovaném uzlu je největší možný. R končí tesně předtím, než by odstranila kořen BVS. Jaká je asymptotická složitost R v případě, že A. původní BVS je vyvážený? B. původní BVS nemusí být vyvážený?