Bináris kereső fák Itterátorok.

Slides:



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

Nevezetes algoritmusok
Microsoft Excel 3. óra Előadó: Jánosik Tamás.
Visual Basic for Application (VBA)
HIKGHB Németh Gábor LUF9NV Simon Attila. A programozás alapjai előadás Híradástechnikai Tanszék.
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
AVL-fa építése.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Erősen összefüggő komponensek meghatározása
Szélességi bejárás Párhuzamosítása.
Gráfok szélességi bejárása Algoritmus bemutatása egy gráfon példa.
A körlevél készítésének menete
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ő:
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.
Fák, bináris fák INFOÉRA Ez így 60 perc.
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
Gráf szélességi bejárása. Alapfogalmak G = (V,E)irányított, véges, nem üres gráf d (s,u)két csúcs távolsága lút hossza, élek száma Qsor adatszerkezet.
DAG topologikus rendezés
Tökéletes Hash függvények keresése Kasler Lóránd-Péter.
Kereső programok használata
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
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ő:
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,
Előrendezéses edényrendezés – RADIX „vissza”
Alapszint 2.  Készíts makrót, ami a kijelölt cellákat egybenyitja, a tartalmat vízszintesen és függőlegesen középre igazítja és 12 pontos betűméretűre.
Egydimenziós tömbökön végezhető műveletek
Gráfelmélet: Fák.
Adatszerkezetek 1. előadás
Egyirányban láncolt lista
Hierarchikus adatszerkezetek
Hierarchikus lista Kétféle értelemezése van:
V. Adatszerkezetek, kollekciók
I276 Antal János Benjamin 12. osztály Nyíregyháza, Széchenyi I. Közg. Szki. Huffman kódolás.
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Fák.
Gráf szélességi bejárása SzB(G,p). Tetszőleges gráf, melyben a p csúcsot választottam kiindulónak: A gráfnak megfelelő fa:
Egyenesvonalú (lineáris) adatszerkezetek
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.
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
Mélységi bejárás Az algoritmus elve: Egy kezdőpontból kiindulva addig megyünk egy él mentén, ameddig el nem jutunk egy olyan csúcsba, amelyből már nem.
BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 2. Előadás tartalma 1. Elemi adatok és adatszerkezetek (struktúrák)‏ 2. Az.
Példa kettő-három fa felépítésére - törlés művelet Készítette : Krizsai Petra
Függvények II..
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
Horváth Bettina VZSRA6.  Célja: Az eljárás célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben.
Fák, bináris fák INFOÉRA Ez így 60 perc.
Algoritmusok és adatszerkezetek
Szélességi bejárás Gráf-algoritmusok Algoritmusok és adatszerkezetek II. Gergály Gábor WZBNCH1.
(Bináris) Kupac (heap) adattípus
Algoritmus DAG = irányított körmentes gráf. Először ezt a tulajdonságot ellenőrizzük (mélységi bejárással), aztán rendezzük: Q: Sor adatszerkezet, kezdetben.
BFák Kiegyensúlyozott keresőfák
Logikai programozás 6..
Mediánok és rendezett minták
Algoritmusok és Adatszerkezetek I.
Dinamikus adatszerkezetek
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ó.
Algoritmusok és Adatszerkezetek I.
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Algoritmusok és Adatszerkezetek I.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Algoritmusok és Adatszerkezetek I.
Előadás másolata:

Bináris kereső fák Itterátorok

Hierarchikus Adatszerkezetek A hierarchikus adatszerkezet olyan < A, R > rendezett pár, amelynél van egy kitüntetett r ∈ A gyökérelem úgy, hogy: 1. r nem lehet végpont, azaz ∀a ∈ A esetén ¬ R(a,r) 2. ∀ a ∈ {A\{r}} elem egyszer és csak egyszer lehet végpont, azaz ∀ a ∈ {A\{r}}-hez ∃! b ≠ a, b∈A: R(b,a) 3. ∀ a ∈ {A\{r}} elem r-ből elérhető, azaz ∃a1, a2,… an ∈ A, an = a : R(r,a1), R(a1, a2) … R(an-1, an)

Bináris keresőfa Rendezési (kereső) fa Elemek értékei különböznek Elemek között rendezési reláció Minden elemére igaz: Csúcs értéke nagyobb, mint a tőle balra lévőnek Csúcs értéke kisebb, mint a tőle jobb elem értéke N csúcsú fa bejárási ideje:O(N) Elem Elem Elem Elem levél levél levél

Bináris keresőfa Műveletek: Keresés(rekurzívan) Minimum / maximum keresés Rákövetkező elem keresése Megelőző elem keresése Beszúrás Törlés Bejárások Elem Elem Elem Elem levél levél levél

Bináris keresőfába beszúr 4, 7, 9, 5, 2, 1, 3, 6 gyökér 4 2 7 1 3 5 9 6

Bináris keresőfából töröl A T bináris keresőfából a p csúcsot töröljük. Lehetőségek: p-nek még nincs gyereke: szülőjének mutatóját NIL-re állítjuk p-nek egy gyereke van: a szülője és a gyermeke között építünk ki kapcsolatot p-nek két gyereke van: átszervezzük a fát: kivágjuk azt a legközelebbi rákövetkezőjét, aminek nincs balgyereke, így I., vagy II. típusú törlés, majd ennek tartalmát beírjuk p-be.

Bináris keresőfából töröl 1, p-nek még nincs gyereke: szülőjének mutatóját NIL-re állítjuk Töröljük az 1-es értékű elemet! gyökér 4 2 7 1 3 5 9 6

Bináris keresőfából töröl 2, p-nek egy gyereke van: a szülője és a gyermeke között építünk ki kapcsolatot Törölöljük: 2-es értékű csúcsot! gyökér 4 2 7 3 5 9 6

Bináris keresőfából töröl 3, p-nek két gyereke van: átszervezzük a fát: kivágjuk azt a legközelebbi rákövetkezőjét, aminek nincs balgyereke, így I., vagy II. típusú törlés, majd ennek tartalmát beírjuk p-be. Törölöljük: 4-es értékű csúcsot! gyökér 4 7 3 5 9 6

Bináris keresőfa Műveletek: Keresés(rekurzívan) Minimum / maximum keresés Rákövetkező elem keresése Megelőző elem keresése Beszúrás Törlés Bejárások Infix /Postfix/Prefix Elem Elem Elem Elem levél levél levél

Bináris keresőfa bejárás Inorder bejárás (bal-gyökér-jobb) 1,2,3,4,5,6,7,9 gyökér 4 2 7 1 3 5 9 6

Bináris keresőfa bejárás Postorder bejárás (bal-jobb-gyökér) 1,3,2,6,5,9,7,4 gyökér 4 2 7 1 3 5 9 6

Bináris keresőfa bejárás Preorder bejárás (gyökér-bal-jobb) 4,2,1,3,7,5,6,9 gyökér 4 2 7 1 3 5 9 6

Elem osztály Fa Elem: szülő adat Jobb gyerek Bal gyerek ??? Jó ez így?? …. Egyenlőre igen, ha az elem oszt be van építve a fába, és nem örökítünk belőe..akkro lehet midnen public, de akkor is kell még bele sok további művelet A fa osztályban is nagyon fontos szerepet játszik az elem osztály: Az ábrán látható adattagokon kívül sok műveelet is a része, hogy rekurzív lehessen!

Feladat: Nyissuk meg a wikin található projektet Nézzük meg hogyan működik benne a fa Írjuk meg a törlés műveletet (el van kezdve kommentben, hogy tuti ne hagyjunk ki semmilyen lehetőséget, csak be kell helyettesíteni az előbbi diák alapján hogy mikor mit csináljon)

Iterátorok A fa szépen működik, de nem tudjuk hogy néz ki! Teljesen el van rejtve az implementáció, ami jó, mivel így nem tudunk illetéktelenül belenyúlni, de nem tudjuk tanulmányozni sem-> Szükségünk van 1 eszközre, amivel hierarchikus adatszerkezeteket tudunk bejárni! Ez az iterátor!

Iterátorok Ennek a tárgynak a keretben 2 féle iterátorral találkozunk: Beépített iterátor:pl: act a múlt órán Iterátor osztály: ez jön most… Példányosítható „kívülről” is! Szabadon tudunk vele mozogni

Feladat: A projektunk Fa osztályában tanulmányozzuk az iterátor osztály működését Írjuk meg a következő fügvényeket: (kivételkezelésesel) Void Ertek(T) – ertek betetele a mutatott elembe Mozgato muveletek szulore, es jobbbgyerekre Maximum kereses Tetszoleges elem keresese

Házi feladat Egészítsük ki a proejektet a következőképp: << operátor, ami 3 sorban kiirja a 3 bejárást Kovetkezo, es elozo műveletek az iterátoroknak, ami ha van ilyen elem akkor oda állítja őket Menü: Amivel minden művelet meghívhato ami látszik a main-ből Mindig megjeleníti az aktuális állapotot (<<) Kivétel kezelést megoldja (ha pl.: nem létező elemet törölnénk akkor azt latjuk a képernyőn, és fut tovább a program, nem szál el)