Piros-fekete fák Beszúrás, ill. törléskor a fa elveszítheti az egyensúlyát. A piros-fekete fák: az egyensúly megtartását biztosítják. +1 bit információ.

Slides:



Advertisements
Hasonló előadás
GRIN: Gráf alapú RDF index
Advertisements

Nevezetes algoritmusok
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
Copyright, 2009 © Szlávi Péter A kupac és a prioritási sor típuskonstrukciók Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Algebrai struktúrák 1.
AVL-fa építése.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Dijkstra algoritmus Baranyás Bence. Feladat Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges.
Gráfok szélességi bejárása Algoritmus bemutatása egy gráfon példa.
Készítette: Pető László
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
AVL fák.
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Fák, bináris fák INFOÉRA Ez így 60 perc.
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
Dinamikus fák és utak Készítette: Kovács Péter
Dijkstra algoritmus Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Vezérlési szerkezetek: elágazások, ciklusok
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
Készítette: Lakos Péter.  Adott egy élsúlyozott, véges gráf  Negatív élsúlyokat nem tartalmaz  Lehet irányított vagy irányítatlan  Továbbá adott egy.
Egydimenziós tömbökön végezhető műveletek
Gráfelmélet: Fák.
Listák, Vermek és Várakozási Sorok. Vermek Def: Egy sajátos lista amelyben minden beszúrási illetve törlési művelet csak a lista egyik végén történik.
Hierarchikus adatszerkezetek
Hierarchikus lista Kétféle értelemezése van:
Rendezések és szövegkezelő függvények
Fák.
A Dijkstra algoritmus.
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
A feladat : Építsünk AVL-fát a következő adatokból:100,170,74,81,136,185,150,122,52,190,144 (Az AVL-fa olyan bináris keresőfa, amelynek minden csúcsára.
BFák Kiegyensúlyozott keresőfák Hatékonyság: O(lg(n)), de a nagy fokszám miatt igen alacsony szorzótényezővel Alkalmazás: Lemezen tárolt adatbázisoknál.
BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör
Példa kettő-három fa felépítésére - törlés művelet Készítette : Krizsai Petra
Dodekaéder Hamilton köre
Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás.
Gráfok ábrázolása teljesen láncoltan
Útkeresések.
Bináris kereső fák Itterátorok.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Adva S  parbegin S 1 ...  S n parend; Párhuzamos programszerkezet két vagy több olyan folyamatot tartalmaz, amelyek egymással közös változó segítségével.
DIJKSTRA- ALGORITMUS. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráfokban.
Algoritmusok és adatszerkezetek
Excel programozás (makró)
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
(Bináris) Kupac (heap) adattípus
Dijkstra algoritmus. Az algoritmus működése  Kezdésnél a kezdő csúcson kívül minden csúcs távolsága legyen ∞, a kezdő csúcs távolsága 0.  Feltételes.
A Dijkstra algoritmus.
BFák Kiegyensúlyozott keresőfák
Amortizációs elemzés Alapelv: nem egy-egy művelet lefutási idejét vizsgáljuk, hanem több műveletét együtt, sokszor Eredmény: átlagolt időszükséglet időátlagban.
Algoritmusok és Adatszerkezetek I.
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Depth First Search Backtracking
Algoritmusok és Adatszerkezetek I.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Dijkstra algoritmusa: legrövidebb utak
Gráfalgoritmusok G=(V,E) gráf ábrázolása
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Informatikai gyakorlatok 11. évfolyam
Algoritmusok és Adatszerkezetek I.
Strukturált és nem strukturált programok
Előadás másolata:

Piros-fekete fák Beszúrás, ill. törléskor a fa elveszítheti az egyensúlyát. A piros-fekete fák: az egyensúly megtartását biztosítják. +1 bit információ (szín)a legrövidebb és leghosszabb út legfeljebb 2-szeres arányú lehet Piros-fekete tulajdonságok: 1. minden csúcs vagy fekete, vagy piros 2. minden levél fekete 3. minden piros csúcs mindkét utódja fekete 4. bármely két, azonos csúcsból a levélig futó útban ugyanannyi fekete csúcs van

26 17 41 14 21 30 47 10 16 19 23 28 38 7 12 15 20 35 39 3 Fekete magasság: fm(x) az x ből induló, de x-et nem tartalmazó, a levélig vezető utak hossza. (a 4. miatt egyértelmű) Lemma: Bármely, n csúcsot tartalmazó pirosfekete fa magassága legfeljebb 2*lg(n+1) Biz: 1. Lépés. Megmutatjuk, hogy a fa minden x gyökerű részfája legalább 2fm(x)-1 belső csúcsot tartalmaz. Ha x magassága 0, akkor levél (NIL), tehát valóban 20-1=0 belső csúcsa van. Tfh x magassága>0. A fiúk fm-a fm(x) vagy fm(x-1), attól függően, hogy a színük fekete-e. Az indukciós feltevés miatt mindkét részfa legalább 2fm(x)-1-1 belső csúcsot tartalmaz. Vagyis az x gyökerű részfa csúcsainak száma legalább (2fm(x)-1-1)+(2fm(x)-1-1)+1= 2fm(x)-1

Következmények 1. Minden elérő művelet (keres, minimum, maximum, stb.) megvalósítható O(lg(n)) időben algoritmikus változtatás nélkül. 2. A módosító műveleteket (beszúr, töröl) meg kell változtatni úgy, hogy a piros-fekete tulajdonságot megőrizzék… Beszúrás: az új csúcsot kezdetben pirosra színezzük Tehát: 1 és 2 tulajdonság nem sérülhet. A 4 nem sérülhet, mert mindkét fia fekete NIL. Tehát csak a 3-t kellhet korrigálni. Futási idő: O(lg n)

beszúr (x) BinárisFa:beszúr(x) x. szín=piros while x beszúr (x) BinárisFa:beszúr(x) x.szín=piros while x.szülő<>NIL and x.szülő.szín=piros do if x.szülő=x.szülő.szülő.bal then y=x.szülő.szülő.jobb if y<>NIL and y.szín=piros then x.szülő.szín=fekete, y.szín=fekete x.szülő.szülő.szín=piros x=x.szülő.szülő elseif x=x.szülő.jobb then x=x.szülő x.szülő.bal=balraForgat(x) x.szülő.szín=fekete x.szülő.szülő.szín=piros jobbraForgat(x.szülő.szülő) else …bal és jobb felcserélésével… Az új csúcs és a szülő színe is pirossérül a 3. Tul. Ha a szülő a nagyszülő bal gyereke 1. Ha a jobb nagybácsi piros… A nagyszülőre lépünk, a hiba ide terjed(het) tovább… Ha a jobb nagybácsi fekete Ezután a hiba már ki van javítva, nem terjed feljebb kilép a ciklusból Forgatás nem függvényszerű

Átszínezés, lépés a nagyszülőre… 11 2 14 15 7 Átszínezés, lépés a nagyszülőre… 1 5 8 3 11 2 14 15 7 1 5 8 3 Forgatás balra… 11 7 14 15 2 8 5 1 Átszínezés és forgatás jobbra… 3 7 2 11 14 15 5 8 3 1

Törlés Ha a ténylegesen kivágandó csúcs fekete, akkor minden ősére sérül a 4. Tulajdonság A törölJavít eljárást csak ilyen esetben hívjuk meg A kivágandó csúcs fiának „extra fekete” értéket adunk, ami az 1. Tult sérti, és ezt görgetjük lefelé a fában. Minden lépés megőrzi az összes többi tulajdonságot.

törölJavít(fia) while fia. őse<>NIL and fia törölJavít(fia) while fia.őse<>NIL and fia.szín=fekete if fia=fia.szülő.bal then testvér=fia.szülő.jobb if testvér.szín=piros then testvér.szín=fekete fia.szülő.szín=piros balraForgat(fia.szülő) testvér=fia.szülő.jobb if testvér.jobb.szín=testvér.bal.szín.fekete then testvér.szín=piros fia=fia.szülő else if testvér.jobb.szín=fekete then testvér.bal.szín=fekete testvér.szín=piros jobbraForgat(testvér) testvér=fia.szülő.jobb testvér.szín=fia.szülő.szín fia.szülő.szín=fekete testvér.jobb.szín=fekete balraForgat(fia.szülő) fia=gyökér 1.eset. Balra forgatás 2.eset. Csak átszínezés 3.eset. Csak átszínezés 4.eset. Balra forgatás Leállási feltétel

Forgatás jobbra D körül Forgatás balra B körül D D A B C E E A C a b e z g d e z a b g d B B D Átszínezés, lépés D A A C E C E a b a b g d e z Forgatás jobbra D körül g d e z B B D A A C C E D E g a b a b g d e z d Forgatás balra B körül B D e z D A B C E E A C a b e z g d e z a b g d

B-fák Kiegyensúlyozott keresőfák, a mágneslemezen történő gyors kereséshez Igen nagy elágazási tényező (50-2000). (a lemez blokkméretéhez igazítva) M D H Q T X BC EG JKL NP RS VW YZ