Identity Lifecycle Management

Podobné dokumenty
PowerPoint Presentation

midterm2014_1

enum

Inteligentné rozhodovacie systémy Heuristické prehľadávanie SP Október, 2018 Katedra kybernetiky

Relačné a logické bázy dát

NÁVRH UČEBNÝCH OSNOV PRE 1

História

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

Snímka 1

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

Paralelné algoritmy, cast c. 3

Identity Lifecycle Management

Microsoft Word - 6 Výrazy a vzorce.doc

Paralelné algoritmy, cast c. 2

midterm2019

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

User:Andrej Sedlacek

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Objektovo orientované programovanie

gis5 prifuk

Metódy násobenie v stredoveku

Paralelné algoritmy, cast c. 3

Identity Lifecycle Management

DediĊnosť

PowerPoint Presentation

Microsoft Word - prirucka_katedry_nova

K S P Korešpondenčný seminár z programovania XXXIV. ročník, 2016/17 Katedra základov a vyučovania informatiky FMFI UK, Mlynská Dolina, Bratisla

Microsoft Word - Zaver.pisomka_januar2010.doc

Matej Kendera - PDF, word, lucene, java

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

PowerPoint Presentation

Tomáš Jelínek - včely vyhľadávanie

STRUČNÝ NÁVOD KU IP-COACHU

Preco kocka stací? - o tom, ako sú rozdelené vlastné hodnoty laplasiánu v limite, ked sú velké

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

trafo

Informačné technológie

bakalarska prezentacia.key

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

Microsoft Word - skripta3b.doc

Kolmogorovská zložitost

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

Microsoft PowerPoint - Prog_p08.ppt

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

Navigácia po úvodnej stránke elektronickej schránky Dátum zverejnenia: Verzia: 10 Dátum aktualizácie: Navigácia po úvodnej st

PAGER V3.0

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

Prezentácia programu PowerPoint

Snímka 1

Obsah tejto príručky Microsoft Prechod na program Access 2010 z programu Access 2003 Vzhľad programu Microsoft Access 2010 sa výrazne odlišuje od prog

0022-vub-mobilne-tokeny-200x200-v03.indd

Poznámky k cvičeniu č. 2

Siete vytvorené z korelácií casových radov

Microsoft Word - Argumentation_presentation.doc

Analýza toku dát Ján Šturc Zima 2010 Kompilátory

SocialInsects

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

PowerPoint Presentation

Snímka 1

1)

Library of Compression Algorithms

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

Katalóg cieľových požiadaviek k maturitnej skúške

Snímka 1

Súkromné gymnázium, Česká 10, Bratislava INFORMATIKA

O babirusách

(Microsoft Word - Tuzemsk\341 a zahrani\350n\341 jazda \232tandardn\341 jazda.docx)

Pokrocilé programovanie II - Nelineárne iteracné schémy, chaos, fraktály

Vnútorná reprezentácia údajových typov

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

ECDL Syllabus V50 SK-V01

2

1

ŤAHÁK PRAKTICKÁ ČASŤ Prerekvizity: LINUX: WINDOWS: Inštalácia Oracle VirtualBoxu a vytvorenie virtuálneho stroja /návod nižšie/ Operačný system Window

Modelovanie nového produktu na trhu: Bassov model Beáta Stehlíková Cvičenia z časových radov, FMFI UK Modelovanie nového produktu na trhu: Bassov mode

Microsoft Word - Priloha_1.docx

MATEMATICKÁ OLYMPIÁDA NA STREDNÝCH ŠKOLÁCH 54. ročník, školský rok 2004/2005 Zadania úloh 3. kola kategórie P 1. súťažný deň Na riešenie úloh máte 4.5

PowerPoint Presentation

Výnimky

Algoritmizácia a programovanie - Príkazy

Snímka 1

NSK Karta PDF

Autoregresné (AR) procesy Beáta Stehlíková Časové rady, FMFI UK Autoregresné(AR) procesy p.1/22

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

Pokrocilé programovanie XI - Diagonalizácia matíc

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

Analýza sociálnych sietí Geografická lokalizácia krajín EU

sprievodca_exp.pdf

Intellectual Property, Psychology and Sociology

Chemical Business NewsBase

397_2011 plnenie MsZ Miskanin

12Prednaska

Konfigur[PleaseinsertPrerenderUnicode{á}intopreamble]cia dynamick[PleaseinsertPrerenderUnicode{é}intopreamble]ho smerovania na routroch Cisco - Seme

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

Prepis:

4. prednáška (7.3.2016) Stromy alebo rodostromy a tajomstvá TreeSet-u 1

Hierarchie okolo nás Stromové zobrazenie adresárovej štruktúry Hierarchický diagram 2

Strom potomkov Janko Janko má deti Jožka, Máriu a Karola. Jožko Mária Karol Igor Andrej Ondrej Lucia Petra Kristína Anna Eva Karol má dcéry Luciu a Petru. 3

Strom potomkov v Jave import java.util.list; public class Osoba { private String meno; private List<Osoba> deti; } Meno, resp. ďalšie údaje o osobe. Zoznam referencií na osoby, ktoré sú deťmi tejto osoby. Janko Igor Jožko Andrej Mária Ondrej Lucia Karol Petra Rekurzívna údajová štruktúra. Osoba je definovaná zoznamom osôb. Kristína Anna Eva 4

Strom potomkov v Jave import java.util.*; public class Osoba { private String meno; private List<Osoba> deti = new ArrayList<Osoba>(); public Osoba(String meno) { this.meno = meno; } } public void pridajdieta(osoba dieta) { deti.add(dieta); } V takto navrhnutej údajovej štruktúre osoba pozná len svoje deti, nepozná svojho rodiča. 5

Strom potomkov v Jave public static void main(string[] args) { Osoba janko = new Osoba("Janko"); Osoba jozko = new Osoba("Jozko"); Osoba maria = new Osoba("Maria"); Osoba karol = new Osoba("Karol"); Osoba lucia = new Osoba("Lucia"); Osoba petra = new Osoba("Petra"); janko.pridajdieta(jozko); janko.pridajdieta(maria); janko.pridajdieta(karol); Janko karol.pridajdieta(lucia); karol.pridajdieta(petra); Jožko } Mária Karol Lucia Petra 6

Osoby sa môžeme: Genealogické otázky spýtať na celkový počet potomkov, spýtať na počet generácií potomkov, spýtať na zoznam všetkých potomkov, spýtať na zoznam potomkov nejakej generácie,... 7

Počet potomkov Potomkovia sú deti osoby, ich deti, ich detí deti, ich detí detí deti, ich detí detí detí deti,... Obmedzenie štruktúry: Osoba pozná len svoje deti, nie vnúčatá a ďalších potomkov,...! Algoritmus: spýtaj sa každého dieťaťa na počet potomkov počet potomkov osoby je: počet potomkov detí + počet detí 8

Počet potomkov Súčet počtu potomkov detí Počet detí (0+0) + 2 = 2 0 (2+0+5) + 3 = 10 5 = (2+0+0) + 3 0 0 (0+0) + 2 = 2 0 0 0 0 9

Počet potomkov (v Jave) public int pocetpotomkov() { int pocetpotomkovdeti = 0; for (Osoba dieta: deti) pocetpotomkovdeti += dieta.pocetpotomkov(); Spýtame sa detí na počty potomkov a sčítame ich odpovede. } return pocetpotomkovdeti + deti.size(); Metódu pocetpotomkov voláme nad iným objektom. Je to rekurzia? Výsledná odpoveď je súčet počtu potomkov detí a počet detí 10

Algoritmus: Výpis rodostromu osoby vypíšeme meno osoby požiadame deti, aby vypísali svoje rodostromy public void vypisrodostrom() { System.out.println(meno); } for (Osoba dieta: deti) dieta.vypisrodostrom(); 11

Výpis rodostromu osoby Igor Jožko Andrej Janko Mária Ondrej Lucia Kristína Anna Eva public void vypisrodostrom() { System.out.println(meno); } for (Osoba dieta: deti) dieta.vypisrodostrom(); Karol Petra janko.vypisrodostrom(); Janko Jožko Igor Andrej Mária Ondrej Kristína Anna Eva Karol Lucia Petra 12

Základná schéma Základná schéma vykonania akcie objektu Osoba: priprav sa na vykonanie akcie u detí (ak treba) požiadaj deti (postupne po jednom) o vykonanie akcie na základe výsledkov akcií detí dokonči svoju akciu (ak treba) public int pocetpotomkov() { int pocetpotomkovdeti = 0; for (Osoba dieta: deti) pocetpotomkovdeti += dieta.pocetpotomkov(); } return pocetpotomkovdeti + deti.size(); 13

Stromová terminológia Strom sa skladá z vrcholov/uzlov Uzol môže, ale nemusí mať deti Špeciálny uzol na vrchole hierarchie: koreň A B C D Uzly delíme na: vnútorné uzly uzly, ktoré majú aspoň jedno dieťa listy uzly bez detí E F G H I 14

Priame vzťahy: rodič/dieťa otec/syn uzol B je rodičom uzla E a uzol E je dieťaťom uzla B Nepriame vzťahy: predok = rodič alebo akýkoľvek predok rodiča (predkovia E sú B, A) potomok = dieťa alebo akýkoľvek potomok rodiča (potomkovia B sú E, F, I) Stromová terminológia Uzol B je rodičom uzla E Koreň A B C D E F G H I 15

Podstromy Ak si vyberieme akýkoľvek uzol stromu, ten spolu so všetkými svojimi potomkami tvorí podstrom. Rekurzia: časťou stromu je strom A B C D E F G H Podstrom s koreňom v uzle B I 16

Stromová terminológia Výška stromu - 3 počet generácií potomkov koreňa stromu maximálna vzdialenosť nejakého uzla od koreňa stromu Úroveň stromu uzly stromu v rovnakej vzdialenosti od koreňa Šírka stromu - 4 maximum z počtu uzlov v jednej úrovni A B C D E F G H I 17

Stromy - sumarizácia Strom je rekurzívna štruktúra: koreň podstromy zakorenené v deťoch koreňa Rekurzívna údajová štruktúra = rekurzívne algoritmy Z koreňa sa vieme dostať do ľubovoľného uzla stromu (jednosmerná cesta) Porovnanie so spájanými zoznamami: uzol spájaného zoznamu = 0 alebo jeden nasledovník uzol stromu = 0 alebo veľa nasledovníkov Aplikácie: súborový systém, hierarchie, 18

Politika dvoch detí Pre mnohé aplikácie stromov stačí limit dvoch detí pre každý uzol stromu... 19

Keď (skoro) dve deti stačia Rozhodovací strom: Áno/Nie pokračovanie 20

Keď dve deti stačia Strom zápasov v turnaji ( play-off časť) 21

Keď dve deti stačia Pravý podvýraz Ľavý podvýraz Posledná vykonaná binárna operácia Aritmetický strom: ((4+(3*7)) - (5/(3+4))) + 6 22

Binárne stromy Binárne stromy sú špeciálnym prípadom stromov, v ktorých má každý uzol nanajvýš 2 deti: ľavý syn pravý syn Možné stavy uzla: žiadny syn len ľavý syn len pravý syn ľavý aj pravý syn B Vo väčšine aplikácií má zmysel rozlišovať synov (napr. áno/nie)... E B B E ľavý syn F pravý syn F E B F 23

Binárne stromy (v Jave) public class Uzol { int hodnota; Hodnota uložená v uzle } Uzol lavy; Uzol pravy; Referencia na ľavého syna Referencia na pravého syna hodnota lavy pravy Základná stavebná jednotka binárneho stromu 24

Binárne stromy 5 5 7 9 7 9 4 2 6 4 2 6 3 3 25

Čo so stromami? Strom uchováva údaje v uzloch (zvyčajne je to viac ako jedna hodnota), našim cieľom je s týmito údajmi niečo spraviť: výpis údajov aritmetický výraz (infixová vs. postfixová notácia), odohrané zápasy, všetky otázky rozhodovacieho stromu zistiť niečo... zápas, v ktorom sa dalo najviac gólov najčastejší výsledok rozhodovacieho stromu zistiť, či aritmetický výraz obsahuje konkrétnu operáciu alebo číselnú hodnotu 26

Prechody binárnym stromom Na to, aby sme sa dostali k ľubovoľnému vrcholu stromu, stačí referencia na koreň Problém: ako systematicky navštíviť všetky hodnoty (resp. uzly) stromu? Rekurzívna idea: spracuj hodnotu uloženú v aktuálnom uzle navštív hodnoty v podstrome zakorenenom v ľavom synovi navštív hodnoty v podstrome zakorenenom v pravom synovi 27

Výpis hodnôt v binárnom strome public void vypis() { System.out.println(hodnota); Spracovanie hodnoty v aktuálnom uzle } if (lavy!= null) lavy.vypis(); if (pravy!= null) pravy.vypis(); Spracovanie hodnôt uložených najprv v ľavom a potom v pravom podstrome. Pozor: Pred pristúpením k synovi musíme otestovať jeho existenciu! 28

Prechody binárnym stromom Podľa toho, kedy spracujeme hodnotu v uzle, rozlišujeme niekoľko prechodov: Preorder: uzol, ľavý podstrom, pravý podstrom Inorder: ľavý podstrom, uzol, pravý podstrom Postorder: ľavý podstrom, pravý podstrom, uzol 29

Príklady prechodov 5 Preorder Inorder Postorder 5 4 4 7 9 7 7 3 4 2 2 4 2 6 2 3 7 3 5 6 9 6 9 3 6 9 5 30

Príklady prechodov 5 7 9 4 2 6 3 Preorder: 5, 7, 4, 2, 3, 9, 6 Inorder: 4, 7, 2, 3, 5, 6, 9 Postorder: 4, 3, 2, 7, 6, 9, 5 Ako z dvoch postupností prechodu stromom zrekonštruovať binárny strom? 31

Výpočet maxima v strome Idea (na začiatku sa pýtame koreňa): ak má uzol ľavého syna, požiadame ho o maximum v ňom zakorenenom podstrome ak má uzol pravého syna, požiadame ho o maximum v ňom zakorenenom podstrome odpoveďou je maximum z uloženej hodnoty a maxím od synov 5 3 1 4 8 9 3 32

Výpočet maxima v strome public int maximum() { int vysledok = hodnota; if (lavy!= null) vysledok = Math.max(vysledok, lavy.maximum()); if (pravy!= null) vysledok = Math.max(vysledok, pravy.maximum()); } return vysledok; Časová zložitosť: Každý uzol navštívime len raz, v každom uzle strávime operáciami čas O(1). Celkový čas je O(n) v strome s n uzlami. 33

Hľadanie hodnoty v strome public boolean obsahuje(int hladany) { if (hodnota == hladany) return true; if (lavy!= null) if (lavy.obsahuje(hladany)) return true; if (pravy!= null) if (pravy.obsahuje(hladany)) return true; Ak je ľavý syn, skúsime nájsť hodnotu v ľavom podstrome. Ak je pravý syn, skúsime nájsť hodnotu v pravom podstrome. } return false; Časová zložitosť: O(n), kde n je počet uzlov stromu 34

Čo už vieme: Mashup nápad spájaný zoznam dobrá vec na uchovávanie dynamicky sa meniaceho zoznamu hodnôt binárne vyhľadávanie superrýchla (O(log n)) stratégia na nájdenie prvku v usporiadanom zozname usporiadaný spájaný zoznam + binárne vyhľadávanie? nefunguje len na to, aby sme sa dostali na zadaný index (napr. do stredu), potrebujeme čas O(n) Nedá sa s tým niečo spraviť? 35

Čo je binárne vyhľadávanie? Hľadaná hodnota: H Pozri na hodnotu X v strede zoznamu ak H < X ak X < H hľadaj H vľavo Referencia na ľavú časť usporiadaného zoznamu hľadaj H vpravo Referencia na pravú časť usporiadaného zoznamu 36

Binárne vyhľadávacie stromy (BVS) Binárne vyhľadávacie stromy slúžia na uloženie dynamicky sa meniacej množiny hodnôt typu, ktorého prvky môžeme navzájom porovnávať: trieda TreeSet<E> uchováva prvky množiny interne uložené v modifikovanej verzii BVS TreeSet<E> vyžaduje, aby E implementovalo Comparable alebo Comparator<E> ako porovnávač Idea: chytrým umiestnením hodnôt do uzlov binárneho stromu vieme dosiahnuť rýchlu realizáciu operácií add, remove a contains. 37

BVS - vlastnosti Hodnoty sú uložené v uzloch každá hodnota len raz (lebo množina...) Pre každý uzol BVS platí: každá hodnota uložená v ľavom podstrome uzla je menšia ako hodnota v tomto uzle každá hodnota uložená v pravom podstrome uzla je väčšia ako hodnota v tomto uzle X <X >X 38

Príklad BVS 39

Využitie vlastností BVS Pri hľadaní hodnoty nemusíme hľadať hodnotu v oboch podstromoch, stačí sa pozrieť do jedného. Algoritmus hľadania hodnoty H pre uzol s uloženou hodnotou V: ak H = V, potom H je v BVS ak H < V, tak v hľadaní treba pokračovať v ľavom podstrome (ak existuje, v opačnom prípade H nie je v BVS) ak H > V, tak v hľadaní treba pokračovať v pravom podstome (ak existuje, v opačnom prípade H nie je v BVS) 40

Hľadanie hodnoty v BVS public boolean obsahujevbvs(int hladany) { if (hodnota == hladany) return true; if (hladany < hodnota) return (lavy!= null) && lavy.obsahujevbvs(hladany); if (hodnota < hladany) return (pravy!= null) && pravy.obsahujevbvs(hladany); } return false; 41

Nerekurzívne hľadanie public static boolean obsahujevbvs(uzol koren, int hladany){ Uzol aktualny = koren; while (aktualny!= null) { if (aktualny.hodnota == hladany) return true; } if (hladany < aktualny.hodnota) { aktualny = aktualny.lavy; } else if (aktualny.hodnota < hladany) { aktualny = aktualny.pravy; } Ako ďalší uzol na } navštívenie vyberieme to dieťa, kam nás pošle return false; porovnanie hľadanej hodnoty a hodnoty v aktuálnom uzle. 42

Maximum v BVS Vďaka vlastnostiam BVS je algoritmus na nájdenie maximálnej hodnoty v BVS: kým sa dá, presuň sa do pravého syna aktuálneho uzla uzol, v ktorom hľadanie skončilo (nemá pravého syna), je maximum (prečo?) public static int maximum(uzol koren) { Uzol aktualny = koren; while (aktualny.pravy!= null) aktualny = aktualny.pravy; } return aktualny.hodnota; Kým sa dá, ideme do pravého syna. 43

Problém: Pridanie hodnoty do BVS hodnotu nepridávame do BVS, ak tam už je uzol s vkladanou hodnotu nemôžeme zavesiť hocikde, pretože môžeme narušiť vlastnosti BVS Algoritmus: tvárime sa, že hodnotu nechceme do BVS pridať, ale chceme zistiť, či sa tam nachádza ak ju nájdeme, nie je čo riešiť ak ju nenájdeme, algoritmus skončí tak, že v hľadaní budeme presmerovaní na neexistujúci uzol toto je správne miesto, kam máme uzol s vkladanou hodnotou zavesiť (prečo?) 44

Problém: Odstránenie hodnoty z BVS uzol s odstraňovanou hodnotou treba najprv nájsť odstránenie uzla s hodnotou v strome môže narušiť vlastnosti BVS 3 situácie: odstraňovaný uzol je listom odstraňovaný uzol má 1 dieťa odstraňovaný uzol má 2 deti 45

Odstránenie hodnoty z BVS Odstraňovaný uzol je listom: uzol jednoducho odstránime (nie je čo pokaziť) Odstraňovaný uzol (10) má 1 dieťa: odstraňovaný uzol (u jeho rodiča) nahradíme dieťaťom odstraňovaného uzla 46

Odstránenie hodnoty z BVS Odstraňovaný uzol (8) má 2 deti: namiesto odstraňovaného uzla odstránime iný uzol nájdeme maximum v ľavom podstrome odstraňovaného uzla (raz vľavo, potom stále vpravo kým sa dá) odstránime uzol s nájdeným maximom a hodnotu nájdeného maxima uložíme do pôvodne odstraňovaného uzla 47

Časová zložitosť operácií Pri každej operácii (contains, add, remove) sa schádza od koreňa k jednému z uzlov stromu: v každom uzle čas O(1), navštívených je nanajvýš h+1 uzlov, kde h je výška stromu dôsledok: časová zložitosť každej z operácií je O(h), kde h je výška stromu Ako závisí výška stromu h od počtu v ňom uložených hodnôt n? Určite h <= n. Dôsledok: BVS na implementáciu množiny nemôže byť horší ako pole, kde každá z týchto operácií potrebuje O(n) 48

BVS s rôznymi výškami 5 8 3 8 6 2 4 6 9 5 Logaritmická výška: h ~ log(n) 2 Lineárna výška: h ~ n 49

Časová zložitosť BVS Fakty o BVS s výškou h: každá operácia v BVS trvá v najhoršom prípade O(h) výška stromu závisí od postupnosti realizovaných operácií: add(1), add(2), add(3), add(4),, add(n) vytvorí degenerovaný BVS s výškou n-1 pre výšku binárneho stromu s n uzlami platí: log(n) <= h < n Ako dosiahnuť logaritmickú výšku? Viac na cvičeniach 50

Samovyvažovacie stromy BVS je dobrá štruktúra, ak je strom vyvážený Samovyvažovacie BVS chytré algoritmy zabezpečujúce, že ak sa naruší vyváženosť, tak sa sériou niekoľkých operácií (rotácií) strom opäť vyváži časová zložitosť opravy narušenia vyváženosti je O(h) t.j. rovnaká ako zložitosť modifikujúcej operácie AVL stromy, RB-stromy (červeno-čierne), Trieda java.util.treeset interne ukladá hodnoty v (samovyvažovacom) RB-strome 51

Aplikácie stromov Strom potomkov Uloženie hierarchií Aritmetické stromy Binárne vyhľadávacie stromy a ich modifikácie/zovšeobecnenia Samovyvažovanie stromy B-stromy (na indexovanie v databázach) 52

Ď ť 53