BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör

Slides:



Advertisements
Hasonló előadás

Advertisements

MegyeVersenysport (fő)Amatőr sport(fő) Baranya Bács-Kiskun 38 Nincs adat Békés 26 Nincs adat Borsod-Abaúj-Zemplén Budapest Csongrád.
Sorozatszámítás Sorozatszámítás (N,A,s) s := kezdőérték
Erőállóképesség mérése Találjanak teszteket az irodalomban
Humánkineziológia szak
Országjáró Cipőcskék vándorbogár. Bal lábas cipőcske Jobb lábas Cipőcske Lépés 00 Most megtett út 00 Összes megtett út 00.
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
Minimális költségű feszítőfák
Gráfok szélességi bejárása Algoritmus bemutatása egy gráfon példa.
A tételek eljuttatása az iskolákba
Térelemek Kőszegi Irén KÁROLYI MIHÁLY FŐVÁROSI GYAKORLÓ KÉTTANNYELVŰ KÖZGAZDASÁGISZAKKÖZÉPISKOLA
3. LOGIKAI ADATSZERKEZETEK
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
Műszaki ábrázolás alapjai
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
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.
2. A rekurzió mint típuskonstrukció Szlávi Péter ELTE Média- és Oktatásinformatikai Tanszék
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
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ő:
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
szakmérnök hallgatók számára
Mélységi bejárás.
Logikai szita Pomothy Judit 9. B.
Karakterláncok Páll Boglárka.
Karakterláncok Páll Boglárka. Karakterláncok Karakterlánc olyan karakterek sorozata amelyek az ASCII táblázatban találhatók. Maximális hossza rögzített,
Gráfelmélet: Fák.
Adatszerkezetek 1. előadás
Rendezések és szövegkezelő függvények
I276 Antal János Benjamin 12. osztály Nyíregyháza, Széchenyi I. Közg. Szki. Huffman kódolás.
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
Fák.
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
Tanulói utánkövetés 2009/2010. A 2009/2010-es tanévben iskolánkban 210 tanuló végzett. 77 fő a szakközépiskola valamelyik tagozatán 133 fő szakmát szerzett.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Copyright, 1999 © Szlávi Péter Sor típuskonstrukció Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
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.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Virtuális Méréstechnika Sub-VI és grafikonok 1 Makan Gergely, Vadai Gergely v
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Kvantitatív módszerek
Példa kettő-három fa felépítésére - törlés művelet Készítette : Krizsai Petra
Gazda Gergő Flexo szeminárium - Budapest, október Gazda Gergő Flexo szeminárium - Budapest, október Hatékony rendelés-feldolgozás, adminisztráció.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1 Az igazság ideát van? Montskó Éva, mtv. 2 Célcsoport Az alábbi célcsoportokra vonatkozóan mutatjuk be az adatokat: 4-12 évesek,1.
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.
Fák, bináris fák INFOÉRA Ez így 60 perc.
Algoritmusok és adatszerkezetek
(Bináris) Kupac (heap) adattípus
Szélességi bejárás. Véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben Egy csúcsot egyszer járunk be Egyenlő.
BFák Kiegyensúlyozott keresőfák
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.
Algoritmusok és Adatszerkezetek I.
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:
Előadás másolata:

BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör Definició: Bináris fa: olyan fa, amelynek egy szögpontjából legfeljebb két él indul ki. Rekurzív típus Hierarchikus adatszerkezet

Megvalósítás: dinamikusan láncolt ábrázolásban FaT = ^CsucsT CsucsT = (ad: Tadat, bal, jobb: FaT) Használata: rendezéshez - keresőfák egyéb, pl. aritmetikai kif. Kiértékeléséhez (levél: operandus szögpont: operátor egy ág: egy zárójelezett rész) Bejárási stratégiák: BKJ, BJK, KBJ Fa felépítése a bejárási stratégiától függ

Pl. 12, 8, 10, 7, 5, 6, 16, 14, 20, 15, 23, 21 12 16 8 7 20 10 14 5 15 23 6 21

Műveletek: init beilleszt bejárás keresés törlés

Init(var p: FaT) p:= Nil Fa felépítése: Ciklusban hívjuk a fába való beillesztést. Beillesztésnél figyelembe vesszük a bejárási stratégiát - BKJ.

Beilleszt(var p: FaT, ep: Tadat) p = Nil lefoglal(p) p^.ad >=ep p^.bal: = Nil Beilleszt( p^.jobb: = Nil Beilleszt(p^.bal,ep) p^.jobb,ep) p^.ad: = ep

Bejárás(var p: FaT) P <> Nil Bejárás(p^.bal) Ki(p^.ad) Bejárás(p^.jobb) SKIP

Keres(var p: FaT, ep: Tadat, var l: L, var hely: FaT) P = Nil p^.ad=ep p^.ad>ep p^.ad<ep l:=  hely:=p Keres(p^.bal, Keres(p^.jobb, l:=  ep , l , hely) ep , l , hely)

Torles(var p: FaT, ep: Tadat) Törlés Ef: p = p’ & ep = ep’ uf: (ep’  p’-ben  p = p’ - ep’) & (ep’  p’-ben  p = p’) Torles(var p: FaT, ep: Tadat) P <> Nil p^.ad<ep p^.ad = ep p^.ad > ep Torles(p^.jobb, Gyokertorl(p) Torles(p^.bal,ep) ep) SKIP

4 eset: - törlendő elem levél - nincs jobb ág, bal részfát kapja - nincs bal ág, jobb oldali részfát kapja - mindkét részfa van, ekkor a gyökér (törlendő elem) helyére a jobboldali részfa legbaloldalibb elemét tesszük. Gyökér a törlendő elem

Gyokertorl(var p: FaT) p^.jobb = Nil s := p p^.bal = Nil p:=p^.bal s := p e:=p s := p^.jobb felszab(s) p:=p^.jobb s^.bal <> Nil felszab(s) e := s s := s^.bal ALPR

ALPR s^.bal := p^.bal e <> p e^.bal := s^.jobb SKIP s^.jobb := p^.jobb felszab(p) p := s

Bináris fa statikus v. szekvenciális megvalósítása FAT = (gyoker: N, ures: N, fa: Vektor) Vektor = vekt([1..max]: ElemT) ElemT = (bal,jobb: N, ad: Tadat)

Pl.: alma 0 0 19 körte 3 6 egres 0 0 szilva 0 0 meggy 12 0 14 15 barack 10 2 16 eper 17 1 11 málna 0 0 szamoca 7 0 9 szeder 0 0 4 20 ribizli 18 13 Gyökér 5 Üres 8

Mikor hatékony a statikus megvalósítás? Teljes a fa: levelek csak az utolsó szinten vannak Kiegyensúlyozott a fa: levélelemek között max. egy szintnyi az eltolódás Elemek tárolása vektorban szintfolytonosan: Nincs üres hely Nem kell a bal, jobb fa helyét tárolni Ha szülő indexe i, akkor a bal gyereké 2i, a jobb gyereké 2i+1

BINFAT = ( fa: VektorT, veg: N) VektorT = vekt([1..n]: Tadat) n eleme lehet maximálisan a fának. Tadat-on rendezés van értelmezve Halom vagy max. halom a kiegyensúlyozott bináris fa, ha minden csomópontjára igaz, hogy értéke nagyobb vagy egyenlő, mint a gyerekei értéke. fa(i) >= fa(2*i) fa(i) >= fa(2*i+1)

Pl.: a vektor tartalma 97,88,95,66,55,95,48,66,35,48,55,62,77,25,38,18,40,30,26,24 Feladatok: rajzoljuk föl a halmot szúrjuk be a 70-es elemet (addig visszük fölfelé az utolsó helyről, amíg a gyerekeinél nagyobb vagy egyenlő nem lesz)

Beszur(var p: BinfaT, e: Tadat) ef.: p = p’ & e = e’ uf.: p = p’ + e’ CM p.veg:=p.veg+1 ptr := p.veg szulo := [ptr/2] p.fa(ptr):= p.fa(szulo) szulo > 0 & e > p.fa(szulo) ptr := szulo szulo := [ptr/2] CM p.fa(ptr) := e

Felépit_halom(var h:BinfaT) Feladat: Építsünk föl egy halmot a következő elemekből: 44, 30, 50, 22, 60, 55, 77, 55 ef : h=h’ uf : h=halom(h’) Felépit_halom(var h:BinfaT) s:=h.veg h.veg := 0 i := 1, s Beszur(h, h.fa(i))

Célunk: Vektor rendezése A halom felépítése A halom rendezése a gyökérelemek ismételt törlésével Gyökértörlés(var h: BinfaT, var e: TAdat) ef: h = h’ & Halom(h) uf.: h = h’ - (h’ gyökere) & halom(h) & e = (h’ gyökere)

Gyökértörlés(var h: BinfaT, var e: TAdat) elem := h.fa(h.veg) e := h.fa(1) dec (h.veg) szulo := 1 bal := 2 jobb := 3 l:= jobb <= h.veg & not l elem >= h.fa(jobb) & elem >= h.fa(bal) S1 l:= S2

h.fa(jobb) <= h.fa(bal) S1 h.fa(jobb) <= h.fa(bal) h.fa(szulo):=h.fa(bal) szulo := bal h.fa(szulo):=h.fa(jobb) szulo := jobb bal := szulo*2 jobb := bal+1

l & bal = h.veg & elem < h.fa(bal) S2 l & bal = h.veg & elem < h.fa(bal) SKIP h.fa(szulo) := h.fa(bal) szulo := bal h.fa(szulo) := elem

HeapSort(var a: BinfaT) Ef.: a = a’ uf.: a.fa = rend(a.fa’) s :=a.veg Felépit_halom(a) a.veg > 1 Gyokertorles(a, a.fa(a.veg)) a.veg = s