Bináris fák 2. előadás. (Horváth Gyula anyagai felhasználásával)
|
|
- Sándor Kozma
- 5 évvel ezelőtt
- Látták:
Átírás
1 Bináris fák 2. előadás (Horváth Gyula anyagai felhasználásával)
2 Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A gyökérelem (vagy kulcsértéke) kisebb vagy egyenlő minden tőle jobbra levő elemnél. Keresőfa specialitása: Nincs két azonos (kulcsú) elem. 2/38
3 A keresőfa új műveletei: keresés beillesztés törlés kiegyensúlyozás Megjegyzés: Ha egy halmazra az eleme?, elem hozzávétele, illetve elem törlése művelet szükséges, akkor a halmazt ábrázolhatjuk keresőfával azaz megkaptuk a halmaz típus egy újabb ábrázolását! Ezzel szemben az unió és a metszet művelet nehéz! 3/38
4 Keresés(k,kf): Elágazás Üres?(kf)esetén Keresés:=kf k<gyökérelem(kf).kulcs esetén Keresés:=Keresés(k,balgyerek(kf)) k>gyökérelem(kf).kulcs esetén Keresés:=Keresés(k,jobbgyerek(kf)) k=gyökérelem(kf).kulcs esetén Keresés:=kf Elágazás vége Függvény vége. 4/38
5 Beillesztés(e,kf): Elágazás Üres?(kf)esetén kf:=egyeleműfa(e) e.kulcs<gyökérelem(kf).kulcs esetén Beillesztés(e,balgyerek(kf)) e.kulcs>gyökérelem(kf).kulcs esetén Beillesztés(e,jobbgyerek(kf)) Elágazás vége Függvény vége. 5/38
6 Törlés /38
7 Törlés(k,kf): Elágazás k<gyökérelem(kf).kulcs esetén Törlés(k,balgyerek(kf)) k>gyökérelem(kf).kulcs esetén Törlés(k,jobbgyerek(kf)) k=gyökérelem(kf).kulcs esetén Gyökértörlés(k,kf) Elágazás vége Függvény vége. 7/38
8 A megoldandó estek: a törlendő levélelem nincs jobboldali részfája nincs baloldali részfája egyik részfája sem üres /38
9 kf= kf= bf bf 9/38
10 kf= bf jf bf jf 10/38
11 Gyökértörlés(k,kf): c:=kf Ha üres?(balgyerek(kf)) akkor kf:=jobbgyerek(kf) különben ha üres?(jobbgyerek(kf)) akkor kf:=balgyerek(kf) különben Legbal(kf,jobbgyerek(kf),lb) Gyökérmódosít(kf,lb) Elágazás vége Felszabadít(c) Függvény vége. Lehetne a másik oldalról is: Legjobb(balgyerek(kf),lj) 11/38
12 Legbal(szülő,kf,lb): Ha nem üres?(balgyerek(kf)) akkor Legbal(kf,balgyerek(kf),lb) különben lb:=gyökérelem(kf); t:=kf Balrailleszt(szülő,jobbgyerek(kf)) Felszabadít(t) Függvény vége /38
13 keresés A keresőfa műveletei módosítása: legkisebb elem a fa legbaloldalibb eleme minimum(kf): p:=kf Ciklus amíg nem üres?(balgyerek(p)) p:=balgyerek(p) Ciklus vége minimum:=p Függvény vége. 13/38
14 keresés A keresőfa műveletei módosítása: Adott elemet követő elem (ismerni kell minden elemre a szülőt is): Ha van jobb-gyereke, akkor a jobboldali ág legbaloldalibb eleme (pl ). Ha nincs jobb-gyereke, akkor az utolsó szülő, ahol keresésnél balra léptünk (pl ). 14/38
15 keresés következő(kf): Ha nem üres?(jobbgyerek(kf)) akkor következő:=minimum(jobbgyerek(kf)) különben s:=szülő(kf) Ciklus amíg s sehova és kf=jobbgyerek(s) kf:=s; s:=szülő(s) Ciklus vége következő:=s Függvény vége. 15/38
16 keresés A keresőfa műveletei módosítása: Adott értéket követő elem (ismerni kell minden elemre a szülőt is): Ha balra lépünk ki a fából, akkor amelyik elemből kiléptünk (pl ). Ha jobbra lépünk ki a fából, akkor az utolsó szülő, ahol keresésnél balra léptünk (pl ). 16/38
17 kiválogatás A és B közötti összes elem kiválogatása egy sorba, növekvően. Esetek: /38
18 kiválogatás A keresőfa műveletei módosítása: A és B közötti összes elem kiválogatása egy sorba, növekvően. Kiválogatás(a,b,kf): Ha nem üres?(kf) akkor Ha b<gyökérelem(kf).kulcs akkor Kiválogatás(a,b,balgyerek(kf)) különben ha a>gyökérelem(kf).kulcs akkor Kiválogatás(a,b,jobbgyerek(kf)) különben ha b=gyökérelem(kf).kulcs akkor Kiválogatás(a,b,balgyerek(kf)) Sorba(gyökérelem(kf))... 18/38
19 kiválogatás különben ha a=gyökérelem(kf).kulcs akkor Sorba(gyökérelem(kf)) Kiválogatás(a,b,jobbgyerek(kf)) különben Kiválogatás(a,gyökérelem(kf).kulcs, balgyerek(kf)) Sorba(gyökérelem(kf)) Kiválogatás(gyökérelem(kf).kulcs,b, jobbgyerek(kf)) Elágazások vége Eljárás vége. 19/38
20 Kiegyensúlyozás definíciók: 1. Kiegyensúlyozott az a bináris fa, amelynek tetszőleges pontjában gyökerező részfáinak ághosszai legfeljebb eggyel térnek el egymástól (AVL-fa). 2. Teljesen kiegyensúlyozott az a bináris fa, amelynek tetszőleges pontjában gyökerező részfáinak pontszámai legfeljebb eggyel térnek el egymástól. 3. Teljes az a bináris fa, amelynek tetszőleges pontjában gyökerező részfáinak pontszámai pontosan megegyeznek /38
21 Cél: a beszúrás és a törlés műveletek módosítása úgy, hogy ha előtte az AVL-tulajdonság teljesült, akkor utána is teljesüljön. A beszúrás lényege: egyszeres elforgatás x y y x f 3 f 1 új elem f 1? f 2 új elem? f 2 f 3 21/38
22 A beszúrás lényege: kétszeres elforgatás y x z z y x f 4 f 1 f 2 f 3 f 2 f 3 új elem? f 1 új elem? f 4 22/38
23 A piros-fekete fa olyan bináris keresőfa, melyre : minden nem levél csúcsnak 2 gyereke van; elemeket belső csúcsokban tárolunk; a fa minden csúcsa piros vagy fekete; a gyökér és a levelek feketék; minden piros csúcs mindkét gyereke fekete minden csúcsra levélbe vezető utakon ugyanannyi fekete csúcs van. Ha egy piros-fekete fában n elemet tárolunk, akkor a magassága 2 log(n + 1). 23/38
24 Kérdés: Lehet-e olyan keresőfa, amelyben több azonos értékű (kulcsú) elem is van? A megoldáshoz egy szabályt módosítani kell: az ilyen keresőfa minden elemétől balra csak nála kisebbek, jobbra nála nagyobb vagy egyenlők lehetnek. A keresés ekkor az azonos értékűekből az elsőt találja meg. Szükség van egy új műveletre: az aktuálisat (utoljára megtaláltat) követő elem megadására. Ha a tárolási szabályt nem módosítjuk, akkor még az aktuálisat megelőző elem megadására is szükségünk lehet. 24/38
25 A rendezőfa új műveletei: beillesztés (majdnem azonos a keresőfával de itt lehetnek egyforma értékű elemek) BKJ-bejárás Megjegyzés: Itt törlés művelet nincs, a fát egyszer építjük fel, bejárjuk, majd a teljes fát törölhetjük. 25/38
26 Beillesztés(e,kf): Elágazás Üres?(kf) esetén kf:=egyeleműfa(e) e.kulcs gyökérelem(kf).kulcs esetén Beillesztés(e,balgyerek(kf)) e.kulcs>gyökérelem(kf).kulcs esetén Beillesztés(e,jobbgyerek(kf)) Elágazás vége Függvény vége. 26/38
27 Bináris fa halmazból a K. legnagyobb eltávolítása Halmazból a K. legnagyobb eltávolítása: Néhány feladatnál (pl. permutációk előállítása inverziós táblával) felmerül, hogy egy halmazból ki kell venni a K. legnagyobb elemet. Ha a halmazt rendezett sorozatként (tömb) képzeljük el, akkor a K. legnagyobb megtalálása egyetlen képlet kiszámítása, a kihagyása azonban a halmaz elemszámával arányos időben történik el kell tolni előre a mögötte levő elemeket. Ha a halmazt listával ábrázolnánk, akkor pedig a K. legnagyobb megtalálási ideje arányos a halmaz elemszámával. Az ötlet: ábrázoljuk a halmazt bináris fával! 27/38
28 Bináris fa halmazból a K. 1. A fának n levélpontja van. legnagyobb eltávolítása 2. A fának n-1 belső (nem levél) pontja van az 1..n-1 számokkal jelölve. 3. Minden belső pontnak két fia van. 4. Az a..b elemeket (leveleket) tartalmazó részfa gyökere k = (a+b)/2, bal részfája az a..k, jobb részfája pedig a k+1..b elemeket tartalmazza. 5. A fa minden p belső pontja a jobb részfájában lévő halmaz-elemek számát tartalmazza (Hány(p)). Legyen H(i) igaz, ha az i elem még a halmazban van! A {2;4;5;7;9;10} halmaz ábrázolása, ha n=10. 28/38
29 Bináris fa halmazból a K. legnagyobb eltávolítása Keres(k,bal,jobb): Ha bal=jobb akkor H(bal):=hamis; Keres:=bal különben s=(bal+jobb)/2 Ha Hány(s)>=k akkor Hány(s):=Hány(s)-1 Keres:=Keres(k,s+1,jobb) különben Keres:=Keres(k-Hány(s),bal,s) Elágazások vége Függvény vége. Ez a Keres művelet O(log 2 n) futási idejű. 29/38
30 Bináris fa halmazból a K. legnagyobb eltávolítása A bináris fa létrehozása n elemből: (Épít(1,n)) Épít(bal,jobb): Ha bal<jobb akkor s=(bal+jobb)/2 Hány(s):=jobb-s Épít(bal,s); Épít(s+1,jobb) Eljárás vége. A keresés és az építés műveletekből is látszik, hogy itt a bináris fát ténylegesen nem hozzuk létre, (ahogyan a kupacnál sem) csupán modellként használjuk a feladat megoldásában. 30/38
31 Bináris fa halmazból a K. legnagyobb eltávolítása A bináris fa létrehozása adott H-beli elemekből: Épít(bal,jobb,db): Ha bal<jobb akkor s=(bal+jobb)/2 Épít(bal,s,b); Épít(s+1,jobb,j) Hány(s):=j; db:=b+j különben Ha H(bal) akkor db:=1 különben db:=0 Eljárás vége. Épít(1,n,db) 31/38
32 Szegmens fa Feladat: Határozzuk meg egy X vektor i. és j. eleme között levő elemei minimumát! A feladat felfogható egy egyszerű minimum-kiválasztás tétel alkalmazásként, ahol az eredmény meghatározásához j-i összehasonlítást kell végezni, azaz a futási idő a vektor elemszámával arányos. A feladat azonban megoldható másként is, egy speciális bináris fa, a szegmens fa alkalmazásával. A bináris fa elkészítése is munkaigényes, de gazdaságos, ha sok intervallumon kell minimumot keresnünk. 32/38
33 Szegmens fa A szegmens fa levelei a tömb elemeit tartalmazzák. A fa többi elemének indexét a hozzá tartozó két szélső levélelem indexének átlagaként számoljuk. Minden belső elemhez rendeljük hozzá azt az eredeti tömbindexet, ahol a levelei minimuma található! Mint látható, ez a fa is egy modell, állandó szerkezetű, a megfelelő indexek egy tömbben tárolhatók. 33/38
34 Szegmens fa Minden belső elemhez rendeljük hozzá azt az eredeti tömbindexet, ahol a levelei minimuma található! Szegmens fa a (6;9;4;2;5;1;10;7;8;3) sorozatra. 34/38
35 Szegmens fa Felépít(a,b): Ha a=b akkor Felépít:=a különben k:=(a+b)/2 x:=felépít(a,k) y:=felépít(k+1,b) Ha A(x)<A(y) akkor Fa(k):=x különben Fa(k):=y Felépít:=Fa(k) Függvény vége. 35/38
36 Szegmens fa Ezután az [a,b] szegmensfában az [i,j] intervallum minimumának meghatározása rekurzívan megadható: i, ha i=j FA((a+b)/2), ha a=i és j=b vagy A(i) vagy A(FA((a+b)/2)) [a,(a+b)/2] szegmensfában [i,j] minimuma, ha j (a+b)/2 [(a+b)/2+1,b] szegmensfában [i,j] minimuma, ha i>(a+b)/2 [i,j]-t felosztjuk a bal- és jobboldali szegmensfára, mindkettőben minimumot keresünk, majd vesszük a két elem minimumát. 36/38
37 Szegmens fa Keres(a,b,i,j): k:=(a+b)/2 Ha i=j akkor Keres:=i különben ha a=i és b=j akkor Keres:=FA(k) különben ha j k akkor Keres:=Keres(a,k,i,j) különben ha i>k akkor Keres:=Keres(k+1,b,i,j) különben x:=keres(a,k,i,k) y:=keres(k+1,b,k+1,j) Ha A(x)<A(y) akkor Keres:=x különben Keres:=y Függvény vége. 37/38
38 Bináris fák 2. előadás vége
Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
Bináris fa. A fa (bináris fa) rekurzív adatszerkezet: ÜresFa. BinFa:= Rekord(Elem,BinFa,BinFa) ÜresFa. Fa := Rekord(Elem,Fák) Fák
Fák, bináris fák Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) Fák 2015.07.14. 10:15 2/42 Bináris fa A fa (bináris fa) rekurzív
A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
A MAXIMUM-KUPACOL eljárás helyreállítja az A[i] elemre a kupactulajdonságot. Az elemet süllyeszti cserékkel mindaddig, amíg a tulajdonság sérül.
Kiválasztás kupaccal A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
17. A 2-3 fák és B-fák. 2-3 fák
17. A 2-3 fák és B-fák 2-3 fák Fontos jelentősége, hogy belőlük fejlődtek ki a B-fák. Def.: Minden belső csúcsnak 2 vagy 3 gyermeke van. A levelek egy szinten helyezkednek el. Az adatrekordok/kulcsok csak
Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.
Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
Rendezések. Összehasonlító rendezések
Rendezések Összehasonlító rendezések Remdezés - Alapfeladat: Egy A nevű N elemű sorozat elemeinek nagyság szerinti sorrendbe rendezése - Feltételezzük: o A sorozat elemei olyanok, amelyekre a >, relációk
Haladó rendezések. PPT 2007/2008 tavasz.
Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
file:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
Bináris fa. A fa (bináris fa) rekurzív adatszerkezet: ÜresFa. BinFa:= Rekord(Elem,BinFa,BinFa) ÜresFa. Fa := Rekord(Elem,Fák)
Fák, bináris fák Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2017.02.03. 7:50 2/68 Bináris fa: példák sin(b(i)+a*x) Sin +
Multihalmaz, intervallumhalmaz
Multihalmaz, intervallumhalmaz Halmaz féleségek 1. Halmaz Gyümölcsök: {alma,körte,szilva,barack} 2. Multihalmaz Állatok: {(macska,4),(rigó,2),(galamb,3)} 3. Intervallumhalmaz diszjunkt Óráim: {[8-10],[13-14],[16-20)}
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat
Hierarchikus adatszerkezetek
5. előadás 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)
Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.
Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,
A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?
Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf
Algoritmusok és adatszerkezetek I. 1. előadás
Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási
Fák 3. előadás. (Horváth Gyula anyagai felhasználásával)
Fák 3. előadás (Horváth Gyula anyagai felhasználásával) Fák Bináris fa "fordított" ábrázolása, a levelektől vissza: Ha a bináris fa elemei címezhetőek is (pl. sorszámuk van), akkor elképzelhető egy olyan
Rendezettminta-fa [2] [2]
Rendezettminta-fa Minden p ponthoz tároljuk a p gyökerű fa belső pontjainak számát (méretét) Adott elem rangja: az elem sorszáma (sorrendben hányadik az adatszekezetben) Adott rangú elem keresése - T[r]
10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28.
10. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28. 2-3 fák Hatékony keresőfa-konstrukció. Ez is fa, de a binárisnál annyival bonyolultabb hogy egy nem-levél csúcsnak 2 vagy 3 fia
Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás Piros-fekete fa B-fa 2 Fa
7 7, ,22 13,22 13, ,28
Általános keresőfák 7 7,13 13 13 7 20 7 20,22 13,22 13,22 7 20 25 7 20 25,28 Általános keresőfa Az általános keresőfa olyan absztrakt adatszerkezet, amely fa és minden cellájában nem csak egy (adat), hanem
Adatszerkezetek 7a. Dr. IványiPéter
Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a
1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás
Preorder ejárás Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban lévő adatokra.
Összetett programozási tételek
Összetett programozási tételek 3. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 19. Sergyán (OE NIK) AAO 03 2011. szeptember
Algoritmizálás és adatmodellezés tanítása 6. előadás
Algoritmizálás és adatmodellezés tanítása 6. előadás Összetett típusok 1. Rekord 2. Halmaz (+multihalmaz, intervallumhalmaz) 3. Tömb (vektor, mátrix) 4. Szekvenciális file (input, output) Pap Gáborné,
Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)
Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),
file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html
1 / 6 2018.01.20. 23:23 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes tananyagának
Kupac adatszerkezet. 1. ábra.
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Buborékrendezés: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábrázolás: For ciklussal:
Buborékrendezés: For ciklussal: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábr.: ha p egy mutató típusú változó akkor p^ az általa mutatott adatelem, p^.adat;p^.mut. A semmibe mutató ponter a NIL.Szabad
Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).
Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a
Hierarchikus adatszerkezetek
Hierarchikus adatszerkezetek A szekveniális adatszerkezetek általánosítása. Minden adatelemnek pontosan 1 megelőzője van, de akárhány rákövetkezője lehet, kivéve egy speciális elemet. Fa (tree) Hierarchikus
Algoritmuselmélet 2. előadás
Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés
Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor
Bináris keresőfa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Bináris keresőfa Rekurzív
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
Halmaz típus Értékhalmaz:
Halmaz, multihalmaz Halmaz féleségek 1. Halmaz Gyümölcsök: {alma,körte,szilva,barack} 2. Multihalmaz Állatok: {(macska,4),(rigó,2),(galamb,3)} 3. Intervallumhalmaz diszjunkt Óráim: {[8-10],[13-14],[16-20)}
Struktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
V. Kétszemélyes játékok
Teljes információjú, véges, zéró összegű kétszemélyes játékok V. Kétszemélyes játékok Két játékos lép felváltva adott szabályok szerint. Mindkét játékos ismeri a maga és az ellenfele összes választási
1. ábra. Számláló rendezés
1:2 2:3 1:3 1,2,3 1:3 1,3,2 3,1,2 2,1,3 2:3 2,3,1 3,2,1 1. ábra. Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással
Számjegyes vagy radix rendezés
Számláló rendezés Amennyiben a rendezendő elemek által felvehető értékek halmazának számossága kicsi, akkor megadható lineáris időigényű algoritmus. A bemenet a rendezendő elemek egy n méretű A tömbben
15. A VERSENYRENDEZÉS
15. A VERSENYRENDEZÉS A versenyrendezés (tournament sort) a maximum-kiválasztó rendezések közé tartozik, ugyanis az elemek közül újra és újra kiválasztja (eltávolítja és kiírja) a legnagyobbat. Az eljárás
Shannon és Huffman kód konstrukció tetszőleges. véges test felett
1 Shannon és Huffman kód konstrukció tetszőleges véges test felett Mire is jók ezek a kódolások? A szabványos karakterkódolások (pl. UTF-8, ISO-8859 ) általában 8 biten tárolnak egy-egy karaktert. Ha tudjuk,
Absztrakt adatstruktúrák A bináris fák
ciós lámpa a legnagyobb élettartamú és a legjobb hatásfokú fényforrásnak tekinthető, nyugodtan mondhatjuk, hogy a jövő fényforrása. Ezt bizonyítja az a tény, hogy ezen a területen a kutatások és a bejelentett
EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF
Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:
Elemi adatszerkezetek
2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Adatbázis és szoftverfejlesztés elmélet. Programozási tételek
Adatbázis és szoftverfejlesztés elmélet Témakör 8. 1. Egy sorozathoz egy érték hozzárendelése Az összegzés tétele Összefoglalás Programozási tételek Adott egy számsorozat. Számoljuk és írassuk ki az elemek
6. előadás. Kiegyensúlyozottság, AVL-fa, piros-fekete fa. Adatszerkezetek és algoritmusok előadás március 6.
6. előadás, AVL-fa, piros-fekete fa Adatszerkezetek és algoritmusok előadás 2018. március 6.,, és Debreceni Egyetem Informatikai Kar 6.1 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen, Charles
Algoritmusok és adatszerkezetek I. 3. előadás
Algoritmusok és adatszerkezetek I. 3. előadás Kupac A kupac olyan véges elemsokaság, amely rendelkezik az alábbi tulajdonságokkal: 1. Minden elemnek legfeljebb két rákövetkezője (leszármazottja) lehet.
Példa 30 14, 22 55,
Piros-Fekete fák 0 Példa 14, 22 55, 77 0 14 55 22 77 Piros-Fekete fák A piros-fekete fa olyan bináris keresőfa, amelynek minden pontja egy extra bit információt tartalmaz, ez a pont színe, amelynek értékei:
Adatszerkezetek II. 10. előadás
Adatszerkezetek II. 10. előadás Kombinatorikai algoritmusok A kombinatorika: egy véges halmaz elemeinek valamilyen szabály alapján történő csoportosításával, kiválasztásával, sorrendbe rakásával foglalkozik
Általános algoritmustervezési módszerek
Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás
Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia
Kétszemélyes játékok Kétszemélyes, teljes információjú, véges, determinisztikus,zéró összegű játékok Két játékos lép felváltva adott szabályok szerint, amíg a játszma véget nem ér. Mindkét játékos ismeri
Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése Célok: gyors lekérdezés, gyors adatmódosítás, minél kisebb tárolási terület. Kezdetek Nincs általánosan legjobb optimalizáció. Az egyik
7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
Algoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 3. Kiegyensúlyozott keresőfák A T tulajdonság magasság-egyensúlyozó
Visszalépéses kiválogatás
elépő a tudás közösségébe Informatika szakköri segédanyag Heizlerné akonyi iktória, Horváth Győző, Menyhárt László, Szlávi Péter, Törley Gábor, Zsakó László Szerkesztő: Abonyi-Tóth Andor, Zsakó László
Gyakorló feladatok ZH-ra
Algoritmuselmélet Schlotter Ildi 2011. április 6. ildi@cs.bme.hu Gyakorló feladatok ZH-ra Nagyságrendek 1. Egy algoritmusról tudjuk, hogy a lépésszáma O(n 2 ). Lehetséges-e, hogy (a) minden páros n-re
Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése
Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Dr. Kallós Gábor 2014 2015 1 Az Ordó jelölés Azt mondjuk, hogy az f(n) függvény eleme az Ordó(g(n)) halmaznak, ha van olyan c konstans (c
Algoritmusok és adatszerkezetek I. 4. előadás
Algoritmusok és adatszerkezetek I. 4. előadás A lista olyan sorozat, amelyben műveleteket egy kiválasztott, az ún. aktuális elemmel lehet végezni. A lista rendelkezik az alábbi műveletekkel: Üres: Lista
Önszervező bináris keresőfák
Önszervező bináris keresőfák Vágható-egyesíthető halmaz adattípus H={2,5,7,11,23,45,75} Vag(H,23) Egyesit(H1,H2) H1= {2,5,7,11} H2= {23,45,75} Vágás A keresési útvonal mentén feldaraboljuk a fát, majd
Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan
Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 6.
Algorimuselméle Keresőfák, piros-fekee fák Kaona Gyula Y. Sámíásudományi és Információelmélei Tansék Budapesi Műsaki és Gadaságudományi Egyeem. előadás Kaona Gyula Y. (BME SZIT) Algorimuselméle. előadás
Algoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 5. Vágható-egyesíthető Halmaz adattípus megvalósítása önszervező
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
Adatszerkezetek I. 4. előadás
Adatszerkezetek I. 4. előadás Kupac A kupac olyan véges elemsokaság, amely rendelkezik az alábbi tulajdonságokkal: 1. Minden elemnek legfeljebb két rákövetkezője (leszármazottja) lehet. Azaz bináris fának
Adatszerkezet - műveletek
Adatszerkezet - műveletek adatszerkezet létrehozása adat felvétele adat keresése adat módosítása adat törlése elemszám visszaadása minden adat törlése (üresít) adatszerkezet felszámolása (megszüntet) +
Adatszerkezetek I. 6. előadás
Adatszerkezetek I. 6. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá: Üres: Táblázat
Térinformatikai adatszerkezetek
Térinformatikai adatszerkezetek 1. Pont Egy többdimenziós pont reprezentálható sokféle módon. A választott reprezentáció függ attól, hogy milyen alkalmazás során akarjuk használni, és milyen típusú műveleteket
Keresőfák és nevezetes algoritmusaikat szemléltető program
EÖTVÖS LORÁND TUDOMÁNYEGYETEM INFORMATIKAI KAR Algoritmusok és Alkalmazásaik Tanszék Keresőfák és nevezetes algoritmusaikat szemléltető program Témavezető: Veszprémi Anna Mestertanár Szerző: Ujj László
14. Mediánok és rendezett minták
14. Mediánok és rendezett minták Kiválasztási probléma Bemenet: Azonos típusú (különböző) elemek H = {a 1,...,a n } halmaza, amelyeken értelmezett egy lineáris rendezési reláció és egy i (1 i n) index.
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása Előadó: Pieler Gergely, MSc hallgató, Nyugat-magyarországi Egyetem Konzulens: Bencsik Gergely, PhD hallgató, Nyugat-magyarországi
Algoritmusok és adatszerkezetek gyakorlat 09 Rendezések
Algortmusok és adatszerkezetek gyakorlat 09 Rendezések Néhány órával ezelőtt megsmerkedtünk már a Merge Sort rendező algortmussal. A Merge Sort-ról tuduk, hogy a legrosszabb eset dőgénye O(n log n). Tetszőleges
PROGRAMOZÁSI TÉTELEK
PROGRAMOZÁSI TÉTELEK Összegzés tétele Adott egy N elemű számsorozat: A(N). Számoljuk ki az elemek összegét! S:=0 Ciklus I=1-től N-ig S:=S+A(I) Megszámlálás tétele Adott egy N elemű sorozat és egy - a sorozat
Információs Technológia
Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió
Informatikai tehetséggondozás:
Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: isszalépéses kiválogatás TÁMOP-4.2.3.-12/1/KON isszalépéses kiválogatás 1. Az összes lehetséges sorrend Sokszor előfordul feladatként,
9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.
Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi
Egyesíthető prioritási sor
Egyesíthető prioritási sor Értékhalmaz: EPriSor = S E, E-n értelmezett a lineáris rendezési reláció. Műveletek: S,S 1,S 2 : EPriSor, x : E {Igaz} Letesit(S, ) {S = /0} {S = S} Megszuntet(S) {} {S = S}
Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat
9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:
Programozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás
Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1
Köszönetnyilvánítás Bevezetés Kinek szól a könyv? Elvárt előismeretek A könyv témája A könyv használata A megközelítés alapelvei Törekedjünk az egyszerűségre! Ne optimalizáljunk előre! Felhasználói interfészek
Adatszerkezetek I. 9. előadás
Adatszerkezetek I. 9. előadás Nem bináris fák A fa rekurzív adatszerkezet jellemzői: sokaság: azonos típusú elemekből áll; akár 0 db elemet tartalmazhat; Üres: rekurzív nullelem, kitüntetett konstans;
A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató INFORMATIKA II. (programozás) kategória Kérjük a tisztelt tanár kollégákat, hogy a
Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz
2018/2019 ősz Elérhetőségek Előadó: (safaro@math.bme.hu) Fogadóóra: hétfő 9-10 (H épület 3. emelet 310-es ajtó) A pontos tárgykövetelmények a www.math.bme.hu/~safaro/kalkulus oldalon találhatóak. A mátrix
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3
Láncolt Listák Adatszerkezetek Adatszerkezet: Az adatelemek egy olyan véges halmaza, amelyben az adatelemek között szerkezeti összefüggések vannak Megvalósítások: - Tömb, Láncolt lista, Fa, Kupac, Gráf,
Egyszerű programozási tételek
Egyszerű programozási tételek 2. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 15. Sergyán (OE NIK) AAO 02 2011. szeptember 15.
16. Az AVL-fa. (Adelszon-Velszkij és Landisz, 1962) Definíció: t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: Pl.:
6. Az AVL-fa Adelszo-Velszkij és Ladisz, 96 Defiíció: t kiegyesúlyozott AVL-tulajdoságú t mide x csúcsára: bal x jobb x. Pl.: A majdem teljes biáris fa AVLtulajdoságú. Az AVL-fára, mit speciális alakú
Adaptív dinamikus szegmentálás idősorok indexeléséhez
Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november
Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.
Rendezések 8. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. október 24. Sergyán (OE NIK) AAO 08 2011. október 24. 1 / 1 Felhasznált irodalom