Adatszerkezetek és algoritmusok
|
|
- Emília Bartané
- 9 évvel ezelőtt
- Látták:
Átírás
1 2010. január 8.
2 Bevezet
3 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ú rendez algoritmusok
4 El z órák anyagainak áttekintése Ismétlés Hierarchikus adatszerkezetek A hierarchikus adatszerkezet olyan A, R rendezett pár, amelynél van egy kitüntetett r elem, ez a gyökérelem, úgy, hogy: r nem lehet végpont a A \ {r} elem egyszer és csak egyszer végpont a A \ {r} elem r-b l elérhet Az adatelemek között egy-sok jelleg kapcsolat áll fenn. Minden adatelem csak egy helyr l érhet el, de egy adott elemb l akárhány adatelem látható (pl. fa, összetett lista, B-fa). A hierarchikus adatszerkezetek valamilyen értelemben a lista általánosításai.
5 Fa adatszerkezet
6 Fa adatszerkezet Fa adatszerkezet A fa egy hierarchikus adatszerkezet, mely véges számú csomópontból áll, és igazak a következ k: Két csomópont között a kapcsolat egyirányú, az egyik a kezd pont, a másik a végpont. Van a fának egy kitüntetett csomópontja, ami nem lehet végpont. Ez a fa gyökere. Az összes többi csomópont pontosan egyszer végpont.
7 Fa adatszerkezet Fa adatszerkezet A fa rekurzív deníciója: A fa vagy üres, vagy Van egy kitüntetett csomópontja, ez a gyökér. A gyökérhez 0 vagy több diszjunkt fa kapcsolódik. Ezek a gyökérhez tartozó részfák. A fával kapcsolatos algoritmusok gyakran rekurzívak.
8 Fa adatszerkezet Fa deníciók I A fa csúcsai az adatelemeknek felelnek meg, Az élek az adatelemek egymás utáni sorrendjét határozzák meg egy csomópontból az azt követ be húzott vonal egy él. A gyökérelem a fa els eleme, amelynek nincs megel z je. Levélelem a fa azon eleme, amelynek nincs rákövetkez je. Közbens elem az összes többi adatelem. Minden közbens elem egy részfa gyökereként tekinthet, így a fa részfákra bontható: részfa: t részfája a-nak, ha az a gyökere, azaz közvetlen megel z eleme t-nek, vagy t részfája a valamely részfájának
9 Fa adatszerkezet Fa deníciók II Elágazásszám: közvetlen részfák száma A fa szintje a gyökért l való távolságot mutatja. A gyökérelem a 0. szinten van. A gyökérelem rákövetkez i az 1. szinten. stb. A fa szintjeinek száma a fa magassága. További deníciók Csomópont foka: a csomóponthoz kapcsolt részfák száma Fa foka: a fában található legnagyobb fokszám Levél: 0 fokú csomópont Elágazás (közbens vagy átmen csomópont): > 0 fokú csomópont Szül ( s) : kapcsolat kezd pontja (csak a levelek nem szül k)
10 Fa adatszerkezet Fa deníciók III Gyerek (leszármazott): kapcsolat végpontja (csak a gyökér nem gyerek) Ugyanazon csomópont leszármazottai egymásnak testvérei Szintszám: gyökért l mért távolság. A gyökér szintszáma 0. Ha egy csomópont szintszáma n, akkor a hozzá kapcsolódó csomópontok szintszáma n + 1. Útvonal: az egymást követ élek sorozata Minden levélelem a gyökért l pontosan egy úton érhet el. Ág: az az útvonal, amely levélben végz dik Üresfa az a fa, amelyiknek egyetlen eleme sincs.
11 Fa adatszerkezet Fa deníciók IV Fa magassága: a levelekhez vezet utak közül a leghosszabb. Mindig eggyel nagyobb, mint a legnagyobb szintszám. Minimális magasságú az a fa, amelynek a magassága az adott elemszám esetén a lehet legkisebb. (Valójában ilyenkor minden szintre a maximális elemszámú elemet építjük be.) Egy fát kiegyensúlyozottnak nevezünk, ha csomópontjai azonos fokúak, és minden szintjén az egyes részfák magassága nem ingadozik többet egy szintnél. Rendezett fa: ha az egy szül höz tartozó részfák sorrendje lényeges, azok rendezettek.
12 Fa adatszerkezet Fa adatszerkezet 0. szint 2 Gyökér Részfa Levél 1. szint szint 5 7 0
13 Bináris fa Bináris fa A bináris fa olyan fa, amelynek csúcspontjaiból maximum 2 részfa nyílik (azaz fokszáma 2). A szül mindig a gyerekek között helyezkedik el. (Ennek a bejárásoknál lesz szerepe.) Egy bináris fa akkor tökéletesen kiegyensúlyozott, ha minden elem bal-, illetve jobboldali részfájában az elemek száma legfeljebb eggyel tér el. Teljesnek nevezünk egy bináris fát, ha minden közbens elemének pontosan két leágazása van. Majdnem teljes: ha csak a levelek szintjén van esetleg hiány.
14 Bináris fa Speciális bináris fa Kiszámítási- vagy kifejezésfa Az a struktúra, amely egy nyelv szimbólumai és különböz m veletei közötti precedenciát jeleníti meg. Aritmetikai kifejezések ábrázolására használják. Minden elágazási pont valamilyen operátort, A levélelemek operandusokat tartalmaznak. A részfák közötti hierarchia fejezi ki az operátorok precedenciáját, illetve a zárójelezést. A következ kifejezés fája: ((10/3) x) + (5 y 2 )
15 Bináris fa Speciális bináris fa + - * / x 5 ^ 10 3 y 2
16 Fa m veletek Fa m veletek I Lekérdez m veletek: Üres-e a fa struktúra Gyökérelem lekérdezése Meghatározott elem megkeresése, az arra vonatkozó referencia visszaadása Módosító m veletek: Üres fa létrehozása konstruktor Új elem beszúrása Meghatározott elem kitörlése Összes elem törlése Egy részfa törlése
17 Fa m veletek Fa m veletek II Részfák kicserélése egymással Gyökér megváltoztatása Fák bejárása. Megadott stratégia (algoritmus szerint végiglépkedni az elemeken.)
18 Fa m veletek Bejárások Rekurziós módszerek tetsz leges fa esetén: Pre-order bejárás (El ször a gyökér kiírása (érintése) majd a részfák ugyanilyen módszer bejárása) Post-oreder bejárás (El ször a részfák bejárása, majd legvégül a gyökér érintése) Bináris fák esetén még egy bejárási módszer: In-order bejárás (El ször a balgyerek bejárása, majd a gyökér érintése, azután a jobbgyerek bejárása) Például tekintsük a következ fát.
19 Fa m veletek Bejárások példák
20 Fa m veletek Bejárások példák Preorder 6, 4, 2, 1, 3, 0, 9, 7, 5, 8 Postorder 1, 3, 2, 0, 4, 7, 8, 5, 9, 6 Mivel bináris fa volt a példa ezért lehetséges az inorder bejárás is: Inorder 1, 2, 3, 4, 0, 6, 7, 9, 8, 5
21 Fa reprezentáció Fa reprezentáció Általános fa esetén: Balgyerek-jobbtestvér: Minden csomópont ismeri a szül jét, egyetlen (legbaloldalibb) gyermekét és a közvetlen jobbtestvért. Ezzel lehetséges, hogy bármely csomópontnak tetsz leges gyereke legyen, amik gyakorlatilag egy láncolt listát alkotnak. Multilistás ábrázolás: Minden csomópont egy láncolt lista. A lista els eleme tartalmazza az adatot, a többi csomópont már csak hivatkozásokat a leszármazottakra (gyermekcsomópontokra)
22 Fa reprezentáció Fa reprezentáció példa
23 Fa reprezentáció Fa reprezentáció Bal gyerek - Jobb testvér null 2 null 6 4 null null null null null null
24 Fa reprezentáció Fa reprezentáció Multilista 2 6 null null 4 null null null null
25 Fa reprezentáció Fa reprezentáció Bináris vagy korlátos fokszámú fa esetén: Aritmetikai ábrázolás: Tömbben is lehetséges, szintfolytonosan. (Balra tömörített, minimális magasságú fa esetén ideális lehet.) Láncolt ábrázolás: Minden csomópont ismeri a szül jét, valamint a jobb és balgyerekét. (Ez általánosítása a kétirányú láncolt listának.)
26 Fa reprezentáció Fa reprezentáció Példa
27 Fa reprezentáció Fa reprezentáció Példa Aritmetikai ábrázolása:
28 Fa reprezentáció Fa reprezentáció Példa null null null 7 5 null null null 1 3 null null null null null 8 null
29 Bináris keresési fák
30 Bináris keresési fák Bináris keresési fák A rendezési fa (vagy keres fa) olyan fa adatszerkezet, amelynek kialakítása a különböz adatelemek között meglév rendezési relációt követi. A fa felépítése olyan, hogy minden csúcsra igaz az, (bináris esetben) hogy a csúcs értéke nagyobb, mint tetsz leges csúcsé a t le balra lév leszálló ágon és a csúcs értéke kisebb minden, a t le jobbra lév leszálló ágon található csúcs értékénél. A T fa bármely x csúcsára és bal(x) bármely y csúcsára és jobb(x) bármely z csúcsára y < x < z
31 Bináris keresési fák Bináris keresési fák A rendezési fa az t tartalmazó elemek beviteli sorrendjét is visszatükrözi. Ugyanazokból az elemekb l különböz rendezési fák építhet k fel. Els sorrend 6,3,1,9,7,5,10 Második sorrend 9,7,6,5,10,3,1
32 Bináris keresési fák Fa reprezentáció Példa
33 Bináris keresési fák Bináris keresési fák tulajdonság Fontos tulajdonság: inorder bejárással a kulcsok rendezett sorozatát kapjuk. Az algoritmus helyessége a bináris-keres -fa tulajdonságból indukcióval adódik. Egy n csúcsú bináris keres fa bejárása O(n) ideig tart, mivel a kezd hívás után a fa minden csúcspontja esetében pontosan kétszer (rekurzívan) meghívja önmagát, egyszer a baloldali részfára, egyszer a jobboldali részfára.
34 Bináris keresési fák m veletek Bináris keresési fák keresés m velet Keresés: A T fában keressük a k kulcsú elemet (csúcsot) Ha ez létezik, akkor visszaadja az elem címét, egyébként NULL-t. Az algoritmust megadjuk rekurzív és iteratív megoldásban is, ez utóbbi a legtöbb számítógépen hatékonyabb. Fában-keres(x, k) rekurzív HA x = NULL VAGY k = kulcs[x] akkol return x HA k < kulcs[x] AKKOR RETURN Fában-keres(bal[x], k) KÜLÖNBEN RETURN Fában-keres(jobb[x], k)
35 Bináris keresési fák m veletek Bináris keresési fák keresés m velet Fában-keres(x, k) iteratív CIKLUS AMÍG x NULL ÉS k kulcs[x] HA k < kulcs[x] AKKOR x bal[x] KÜLÖNBEN x jobb[x] RETURN x
36 Bináris keresési fák m veletek Bináris keresési fák Minimum keresés Minimum keresés: tegyük fel, hogy T NULL Addig követjük a baloldali mutatókat, amíg NULL referenciát nem találunk. Fában-minimum (T) iteratív x gyökér[t] CIKLUS AMÍG bal[x] NULL x bal[x] RETURN x Helyessége a bináris-keres -fa tulajdonságból következik. Lefut O(h) id alatt, ahol h a fa magassága. Hasonlóan megkereshet a maximum érték is, ami a legjobboldalibb elem.
37 Kupac (Heap)
38 Bináris fák teljessége Bináris fák teljessége Egy bináris fa teljes, ha a magassága h, és 2 h 1 csomópontja van Egy h magasságú bináris fa majdnem teljes üres; vagy: a magassága h, és a bal részfája h 1 magas és majdnem teljes és jobb részfája h 2 magas és teljes; vagy: a magassága h, és a bal részfája h 1 magas és teljes és jobb részfája h 1 magas és majdnem teljes.
39 Bináris fák teljessége Bináris fák teljessége Heap tulajdonság Gyakorlatilag ez azt jelenti, hogy a majdnem teljes fákat balról töltjük fel. (Avagy szintenként haladunk a feltöltéssel és balról jobbra... ) Egy majdnem teljes bináris fa heap (kupac) tulajdonságú üres (vagy) a gyökérben lév kulcs nagyobb, mint mindkét gyerekében, és mindkét részfája is heap tulajdonságú Reprezentálásuknál kihasználjuk a tömörítettséget és majdnem teljességet aritmetikai reprezentációval tömbben tároljuk az értékeket és az egy indexfüggvény számítja a szül t és a gyerekeket.
40 Bináris fák teljessége Kupac Példa X K O A D L M
41 Kupac M veletek Kupac Gyökér törlése A gyökér a legnagyobb elem. Eltávolítása után a legalsó szint legjobboldalibb elemét tesszük fel a helyére, hogy a majdnem teljes tulajdonság megmaradjon. Ezzel elrontjuk kupac tulajdonságot, amit helyre kell állítani: Cseréljük fel a gyökeret a nagyobb gyerekével A felcserélt ágon ismételjuk a kupac tulajdonság helyreállítását, amíg szükséges.
42 Kupac M veletek Kupac Gyökér törlése X K O A D L M
43 Kupac M veletek Kupac Gyökér törlése M K O A D L
44 Kupac M veletek Kupac Beszúrás Amikor beszúrunk, tegyük a következ szabad pozícióra, a legalsó szint legjobboldalibb elemének tesszük fel a helyére, hogy a majdnem teljesség megmaradjon. Ezzel elrontjuk kupac tulajdonségot, amit helyre kell állítani: Cseréljük fel az újonnan beszúrtat a szül jével, amíg nagyobb az új a szül jénél. (Ismételjük... )
45 M veletigények Kupac M veletigény A kupacnál a beszúrás és maximum törlés m veletigénye, legfeljebb a fa magasságával arányos (O(h)), ami az O(log n)). A kupacot fejjel lefelé is fel lehet építeni, amikor is a gyökérben a legkisebb elem lesz. Indexfüggvények aritmetikai reprezentáció esetén: Balgyerek(k) RETURN 2k Jobbgyerek(k) RETURN 2k+1 Szülö(k) RETURN k/2
46 M veletigények Kupac M veletigény Ennek megfelel en a kupac adatszerkezet használható rendezésre is. Minden, rendezend elemet beszúrunk egy kupacba, majd a gyökeret eltávolítva megkapjuk a legnagyobb elemet. Az eltávolításokat folytatva egy rendezést kapunk eredményül. M veletigény n beszúrás: O(n log n) n törlés: O(n log n) Összesen: O(n log n) Ami jobb, mint a lassú rendezések.
47 Összefoglaló
48 Összefoglaló Összefoglaló Hiearchikus adatszerkezetek ismétlés Fák Bináris keresési fák Kupac Bejárások
49 Felhasznált el adások Felhasznált el adások 6-7. el adás Nyékyné Gaizler Judit (Illetve új anyagok)
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)
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
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
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
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
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.
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
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
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
Adatszerkezetek és algoritmusok
2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók
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
Adatszerkezetek és algoritmusok
2009. november 20. 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ó El z órák anyagainak
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
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
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
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.
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
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.
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ő.
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
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),
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
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.
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
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
21. Adatszerkezetek Az adattípus absztrakciós szintjei Absztrakt adattípus (ADT) Absztrakt adatszerkezet (ADS) Egyszerű adattípusok Tömbök
2. Adatszerkezetek Az adattípus absztrakciós szintjei http://people.inf.elte.hu/fekete/docs_/adt_ads.pdf Absztrakt adattípus (ADT) Az adattípust úgy specifikáljuk, hogy szerkezetére, reprezentálására,
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
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
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
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:
Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor
Láncolt listák Egyszerű, rendezett és speciális láncolt listák 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 Láncolt
Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság
datszerkezetek Bevezetés datszerkezet adatok rendszerének matematikai, logikai modellje elég jó ahhoz, hogy tükrözze a valós kapcsolatokat elég egyszerű a kezeléshez datszerkezet típusok Tömbök lineáris
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
- Levelek: operandusok - Csomópontok: operátorok. Fenti kifejezés: (x+ (y 10)) * (6 / z) Bináris Keresőfa (BST) Példa bináris keresőfára.
Fák Fa definíciója Fa(Tree): csomópontok(nodes) halmaza, amelyeket élek(edges) kötnek össze, és teljesülnek az alábbi feltételek: - létezik egy kitűntetett csomópont: a gyökér (root) - a gyökértől különböző
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
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
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
Adatszerkezetek 1. előadás
Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk
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ó
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.
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:
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
Egyirányban láncolt lista
Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten
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
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2015. tavasz 1. Diszkrét matematika 2.C szakirány 1. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu Komputeralgebra Tanszék 2015. tavasz Gráfelmélet Diszkrét
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
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Algoritmusok és adatszerkezetek
Algoritmusok és adatszerkezetek Feladatgy jtemény a gyakorlatokhoz Szerkeszti: Hunyadvári László és Fekete István (Ideiglenes változat) Programtervez matematikus szak Alkalmazott matematikus szak ELTE
... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok 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
Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Diszkrét matematika 1. estis képzés
Diszkrét matematika 1. estis képzés 2019. tavasz 1. Diszkrét matematika 1. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján
Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
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) +
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
5. A gráf, mint adatstruktúra Gráfelméleti bevezető
5. A gráf, mint adatstruktúra 5.1. Gráfelméleti bevezető Az irányított gráf (digráf) A G = ( V, rendezett párt irányított gráfnak (digráfnak) nevezzük. A rendezett pár elemeire tett kikötések: V véges
Programozás I. - 11. gyakorlat
Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar
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
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
Láncolt listák. PPT 2007/2008 tavasz.
Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Láncolt listák elvi felépítése Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Láncolt
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2015. ősz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2015.
Feladat. Ternáris fa. Típusspecikáció. Reprezentáció. Absztrakt implementáció. Érdi Gerg EAF II. 4/3.
Feladat djuk meg, hogy egy ternáris fa INORDER bejárás szerint sorozatba f zött értékei között mekkora a leghosszabb csupa pozitív számot tartalmazó részsorozat. Ternáris fa Típusspecikáció z alaphalmaz
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
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,
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
Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
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
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá
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ó
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
Web-programozó Web-programozó
Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesíté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
III. Gráfok. 1. Irányítatlan gráfok:
III. Gráfok 1. Irányítatlan gráfok: Jelölés: G=(X,U), X a csomópontok halmaza, U az élek halmaza X={1,2,3,4,5,6}, U={[1,2], [1,4], [1,6], [2,3], [2,5], [3,4], [3,5], [4,5],[5,6]} Értelmezések: 1. Fokszám:
1. tétel - Gráfok alapfogalmai
1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési
1.előadás Tornai Kálmán
1.előadás Tornai Kálmán tornai.kalman@itk.ppke.hu Általános tudnivalók Előadás: 2 óra (Labor)gyakorlat: 3 óra Előismeretek: Kötelező: Bevezetés a programozásba I-II. Algebra és diszkrét matematika I. II.
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
Bináris keres fák kiegyensúlyozásai. Egyed Boglárka
Eötvös Loránd Tudományegyetem Természettudományi Kar Bináris keres fák kiegyensúlyozásai BSc szakdolgozat Egyed Boglárka Matematika BSc, Alkalmazott matematikus szakirány Témavezet : Fekete István, egyetemi
Programozási segédlet
Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen
Láncolt listák Témakörök. Lista alapfogalmak
Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök
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
Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk:
8. előadás Ismétlés Dinamikus adatszerkezetek: listák (egyszeresen vagy többszörösen láncolt), fák. Kétfelé ágazó fa: bináris fa Dinamikus adatszerkezetek - önhivatkozó adatstruktúrák: adatok és reájuk
GRÁFOK ÉS ALGORITMUSOK ELMÉLETE VIZSGAKÉRDÉSEK Matematika BSc Elemző szakirány II. év 1. félév
GRÁFOK ÉS ALGORITMUSOK ELMÉLETE VIZSGAKÉRDÉSEK Matematika BSc Elemző szakirány II. év 1. félév Az írásbeli vizsgán öt kérdést kell kidolgozni, A kérdések az alábbiak közül kerülnek kiválasztásra, a műfaji
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
2. Visszalépéses stratégia
2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:
Gyakori elemhalmazok kinyerése
Gyakori elemhalmazok kinyerése Balambér Dávid Budapesti M szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudomány szakirány 2011 március 11. Balambér Dávid (BME) Gyakori
5. A gráf, mint adatstruktúra Gráfelméleti bevezető
5. A gráf, mint adatstruktúra 5.1. Gráfelméleti bevezető Az irányított gráf (digráf) A G = ( V, E) rendezett párt irányított gráfnak (digráfnak) nevezzük. A rendezett pár elemeire tett kikötések: V véges
Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
Adatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
Á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
mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.
Érdi Gerg EF II. 2/2. Feladat Készítsen egy zsák típust! lkalmazzon osztályt! zsákokat rendezett láncolt listával ábrázolja! Implementálja a szokásos m veleteket, egészítse ki az osztályt a kényelmes és
Módosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12
Módosítható Prioritási sor Binomiális kupaccal modosit(x,k) {! if (k>x.kulcs) {!! x.kulcs=k ;!! y=x!! z=x.apa ;!! while(z!=nil and y.kulcs
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]
2. AZ ADATTÍPUS ABSZTRAKCIÓS SZINTJEI...2
2. AZ ADATTÍPUS ABSZTRAKCIÓS SZINTJEI...2 2.1. Absztrakt adattípus (ADT)... 2 2.1.1. Algebrai (axiomatikus) specifikáció... 3 2.1.2. Funkcionális (elő-, utófeltételes) specifikáció... 4 2.1.3. Algoritmusok
Programozás I. C nyelv
Programozás I. C nyelv 12. előadás Bináris fa, bináris kereső fa, kupac, időkezelő függvények Veszprémi Egyetem Heckl István, heckl@dcs.vein.hu 1 Fogalmak Fa: összefüggő, körmentes gráf, azaz bármely két
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ó
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;
Algoritmusok és adatszerkezetek I. kidolgozott vizsgakérdések
Algoritmusok és adatszerkezetek I. kidolgozott vizsgakérdések 013/014-es tanév 1. félév 1.) Bizonyítsa be, hogy a buborékrendezés átlagos csere-száma n(n -1)/4, ha minden input permutáció egyformán valószínű.
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán