Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Bináris kereső fák Itterátorok."— Előadás másolata:

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

2 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)

3 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

4 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

5 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

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.

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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!

15 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)

16 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!

17 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

18 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

19 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)


Letölteni ppt "Bináris kereső fák Itterátorok."

Hasonló előadás


Google Hirdetések