41
Algoritmusok és Adatszerkezetek II. előadás 2012. február 8.

Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Algoritmusok és Adatszerkezetek II.

előadás

2012. február 8.

Page 2: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Felelős tanszék: Számítógépes algoritmusok és mesterséges intelligencia tanszék

Nappali tagozaton:

Előadás: heti 2 óra / 5 kredit. Teljesítés módja: Kollokvium.

Gyakorlat: heti 1 óra / 0 kredit. Teljesítés módja: Aláírás.

A kurzus felvételének előfeltételei : Algoritmusok és adatszerkezetek I.,

• Megoldás szisztematikus keresése visszalépéssel (pénzváltás, n királynő).• Megoldás szisztematikus keresése elágazás-korlátozással (pénzváltás, ütemezés).• Tördelőtáblák (hasítótáblák).• Kiegyensúlyozott keresőfák. AVL fák.• Piros-fekete fák.• Az RHalmaz adattípus megvalósítása ugrólistával (Skiplist).• B-fák.• Diszjunkt halmazok kezelése, az UnioHolvan adattípus.• Geometriai algoritmusok.• Amortizációs költségelemzés.• Binomiális kupacok.• Az egyesíthető prioritási sor megvalósítása Fibonacci-kupaccal.• Mintaillesztés; a Knuth-Morris-Pratt algoritmus.• Számelméleti algoritmusok, nyilvános kulcsú titkosítás.• Közelítő algoritmusok.

2012. február 8.

Page 3: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Ajánlott irodalom:

• [1] T. H. Cormen, C. E. Leiserson, R.L. Rivest: Algoritmusok, Műszaki Könyvkiadó, 2003.

• [2] T. H. Cormen, C. E. Leiserson, R.L. Rivest, C. Stein: Új algoritmusok, Scolar Kiadó, 2003.

• [3] T. Ottman, P. Widmayer: Algoritmen und Datenstrukturen, Wissenschaftsverlag, 1990

• [4] E. Knuth: A számitógépprogramozás művészete, 3. Kötet, Műszaki Könyvkiadó, 1990.

• [5] A. V. Aho, J. E. Hopcroft, J. D. Ullman: Számítógép-algoritmusok tervezése és analízise,Műszaki Könyvkiadó, 1982.

• [6] G. Gonnet, R. Baeza-Yates: Handbook of algorithms and data structures. In Pascal and C. , Addison-Wesley. 1991.

• [7] R. Sedgewick: Algoritms in C++, Addison-Wesley. 1991.• [8] E. Horowitz, S. Shani: Fundamentals of Computer Algorithms, Computer

Science Press, 1998.• [9] Adonyi Róbert: Adatstruktúrák és algoritmusok (letölthető jegyzet)

2012. február 8.

Page 4: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

A kurzus teljesítésének feltételei:

Évközi számonkérés.• a) Gyakorlaton teljesítendő 10 rövid írásbeli dolgozat a

2., 3., 4., 6., 7., 8., 9. és 11. gyakorlaton.◦ Elérhető maximális pontszám: 40◦ Teljesítendő minimális pontszám: 14

• b) Gyakorlaton teljesítendő 2 írásbeli dolgozat az 5. és 10. gyakorlaton.◦ Elérhető maximális pontszám: 30/dolgozat◦ Teljesítendő minimális pontszám: 0

• Elérhető maximális pontszám (a+b): 100• Teljesítendő minimális pontszám (a+b): 35

2012. február 8.

Page 5: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Kollokvium• Elérhető maximális pontszám: 100.• A kollokvium 3 részből áll:• A. 5 kérdés a kurzus anyagát lefedő témakörökből.◦ Elérhető maximális pontszám: 40◦ Teljesítendő minimális pontszám: 10

• B. Teljesen kidolgozandó tétel.◦ Elérhető maximális pontszám: 30◦ Teljesítendő minimális pontszám: 10

• C. Gyakorlati feladatok megoldása.◦ Elérhető maximális pontszám: 30◦ Teljesítendő minimális pontszám: 10

A kurzus teljesítésének feltételei:

Érdemjegy.• 175 - 200 jeles (5)• 150 - 174 jó (4)• 125 - 149 közepes (3)• 100 - 124 elégséges (2)• 0 - 99 elégtelen (1)

2012. február 8.

Page 6: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Megjegyzések.• Aki az 1. feltételt nem teljesíti, az a vizsgaidõszak 1. hetében

javító dolgozatot írhat. A hallgató csak akkor jelentkezhet kollokviumra, ha a javító dolgozattal megszerezhetõ max. 50 pontból min. 25 pontot teljesít. A javító dolgozattal szerzett pont nem számít be sem az 1. részbe, sem az összpontszámba.

• Aki a dolgozatok írása közben nem megengedett segédeszközt használ, vagy ennek gyanuja felmerül, az a következõ vizsgákon írásbeli vizsga helyett szóbeli vizsga letételére kötelezhetõ, vagy az írásbeli vizsgáját szóban kell megvédenie.

• Az előadások látogatása kötelező. Akinek az igazolatlan hiányzása meghaladja a 3 alkalmat, az nem vizsgázhat!Csak előre jelzett hiányzás igazolható, vagy baleseti jegyzőkönyv/korházi pecsét szükséges!

2012. február 8.

Page 7: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Motiváció

• PTI BSC Záróvizsga tételek:

• Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Algoritmusok és adatszerkezetek I.1. Gráf algoritmusok (mélységi és széltében keresés, erősen összefüggő komponensek, minimális feszítőfák, legrövidebb utak).

2. Probléma megoldási módszerek (dinamikus programozás, mohó stratégia).Algoritmusok és adatszerkezetek II.

3. Keresőfák (AVL-fák, Piros-fekete fák, B-fák).4. Geometriai alapalgoritmusok (pont helyzete, konvex burok, ponthalmaz legközelebbi és legtávolabbi pontpárja, metsző szakaszpárok keresése).

2012. február 8.

Page 8: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Szakmai gyakorlat Németországban

Fraunhofer Institute for Integrated Circuits IIS Nordostpark 93 90411 Nuremberg Germany

Erasmus ösztöndíj 300 EUR

Fraunhofer ösztöndíj 850 EUR

Szállás, étkezés biztosítva

Elsősorban Programtervező Informatikus vagy Mérnökinformatikus szakkal

2012. február 8.

Page 9: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Adatszerkezetek

• Halmaz, Rhalmaz, Függvény absztrakt adatszerkezet, Rendezett minta

• Prioritási sor, Egyesíthető prioritási sor absztrakt adatszerkezet

• Halmazerdő adatszerkezet

2012. február 8.

Page 10: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris keresőfa

[2] 232-241fázunk...

2012. február 8.

Page 11: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris keresőfa

21

9 29

4 17 24 37

1 6 13 20 22 27 31 43

2012. február 8.

Page 12: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris keresőfa

21

9 29

4 17 24 37

1 6 13 20 22 27 31 43

(-∞,1) (1,4) (4,6) (6,9) (9,13) (13,17) (17,20) (20,21) (21,22) (22,24) (24,27) (27,29) (29,31) (31,37) (37,43) (43, ∞)

2012. február 8.

Page 13: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Fapont tárolása

struct fapont{ int key, value ; fapont bal, jobb, apa ;}

key value

balfiu jobbfiu

apa

első megközelítés, a gyakorlatban nem így tároljuk!

2012. február 8.

Page 14: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris fa tárolásapublic class fa { int elemszam ; struct fapont{ int key, value ; fapont bal, jobb, apa ; } fapont nil, gyoker ; void fa() { fapont q = new fapont() ; nil=q ; gyoker=q ; elemszam=0 ; } boolean beszur(int x, int v) {

...}...

}

k v

nil gyoker

beszur(5, 8)

5 8

nil

gyoker

k v

első megközelítés, a gyakorlatban nem így van!

2012. február 8.

Page 15: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

21

9 29

4 17 24 37

1 6 13 20 22 27 31 43

(-∞,1) (1,4) (4,6) (6,9) (9,13) (13,17) (17,20) (20,21) (21,22) (22,24) (27,29) (29,31) (31,37) (37,43) (43, ∞)(24,27)

Keresés keresőfában27

2012. február 8.

Page 16: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

21

9 29

4 17 24 37

1 6 13 20 22 27 31 43

(-∞,1) (1,4) (4,6) (6,9) (9,13) (13,17) (17,20) (20,21) (21,22) (22,24) (27,29) (29,31) (31,37) (37,43) (43, ∞)(24,27)

Keresés keresőfában26

2012. február 8.

Page 17: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

fapont keres(int x) { fapont p=gyoker ; nil.key=x ; while (p.key!=x) p=x<p.key?p.bal:p.jobb ; return p;} 21

9 29

4 17 24 37

1 6 13 20 22 27 31 43

16

q=keres(16) ;

gyökér

nil

[3] 254

2012. február 8.

Page 18: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

21

9 29

4 17 24 37

1 6 13 20 22 27 31 43

(-∞,1) (1,4) (4,6) (6,9) (9,13) (13,17) (17,20) (20,21) (21,22) (22,24) (27,29) (29,31) (31,37) (37,43) (43, ∞)(24,27)

Beszúrás keresőfába26

(24,26) (26,27)

2012. február 8.

Page 19: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

5 8

nil

5 8

nil

5 8

nil

3

2012. február 8.

Page 20: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

boolean beszur(int x, int v) { fapont p,papa ; p=gyoker ; papa=nil ; while (p!=nil && p.key!=x) { papa=p ; if (x<p.key) p=p.bal; else p=p.jobb; } if (p==nil) { fapont ujpont = new fapont(); if (gyoker==p) gyoker=ujpont ; ujpont.key=x ; ujpont.value=v ; ujpont.bal=nil; ujpont.jobb=nil; ujpont.apa=papa; if (papa!=nil) { if (x>papa.key) papa.jobb=ujpont; else papa.bal=ujpont; } elemszam++ ; return true ; } else { p.value=v ; return false ; } }

5 8

nil

gyoker

? ?? ?

?

5 8

nil

? ?? ?

?

3 9

beszur(3,9) ;

2012. február 8.

Page 21: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

21

9 29

4 17 24 37

1 13 20 27 31 43

Elem rákövetkezője

2012. február 8.

Page 22: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

p rákövetkezője

p

p p

2012. február 8.

Page 23: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

fapont kovetkezo(fapont p) { if (p.jobb!=nil) { //ha van jobb részfa p=p.jobb ; //akkor a jobb részfa while (p.bal!=nil) p=p.bal; //bal szélső eleme return p; } else { // ha nincs jobb fiú while (p.apa!=nil) { // amíg van apa if (p.apa.bal==p) // ha p bal gyerek return p.apa; // p apja a rákövetkező p=p.apa ; // megyünk felfelé p-vel }; return nil ; // nincs rákövetkező }}

p rákövetkezője

2012. február 8.

Page 24: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Törlés bináris keresőfából

p q

2012. február 8.

Page 25: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

void torol(fapont p) { if (p.jobb!=nil) { fapont q=kovetkezo(p) ; p.key=q.key ; p.value=q.value ; q.apa.bal=q.jobb ; q.jobb.apa=q.apa ; delete q ; } else { ... }}

21

29

37

27 31 43

2424

p

q

2012. február 8.

Page 26: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

void torol(fapont p) { if (p.jobb!=nil) { fapont q=kovetkezo(p) ; p.key=q.key ; p.value=q.value ; q.apa.bal=q.jobb ; q.jobb.apa=q.apa ; delete q ; } else { if (p.apa.jobb==p) p.apa.jobb=p.bal ; else p.apa.bal=p.bal ; p.bal.apa=p.apa ; delete p ; }}

p

2012. február 8.

Page 27: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

21

9 29

4 17 24 37

1 13 20 27 31 43

Elem törlése példa

2012. február 8.

Page 28: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris fák tárolása

• bal gyerek, ha létezik• jobb gyerek, ha csak az létezik.• nil: ha egyáltalán nincs gyereke.

• ha ő maga bal gyerek, akkor a testvérre mutat,ha az létezik, különben a szülőre.

• ha jobb gyerek: a szülőre mutat.• gyökérben nil

1. pointer

2. pointer

csúcsonkét 2 pointer és egy bit, mely azt jelöli, hogy bal, vagy jobb gyerek

2012. február 8.

Page 29: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Fapont tárolása

struct fapont<K,V>{ <K> key ; <V> value ; fapont fiu, tespa ; boolean bal ; }

2012. február 8.

Page 30: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris keresőfák jellemzői

• p gyökerű részfa belső pontjainak száma

• p gyökerű részfa magassága

int s(fapont p) { if (p==nil) return 0 ; return 1+s(p.bal)+s(p.jobb) ;}

int h(fapont p) { if (p==nil) return 0 ; return 1+Math.max(h(p.bal),h(p.jobb)) ;}

2012. február 8.

Page 31: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Véletlen építésű bináris keresőfa

• Adott n egymástól különböző kulcs, melyekből bináris keresőfát építünk úgy, hogy a kulcsokat valamilyen sorrendben egymás után beszúrjuk a kezdetben üres fába.

• Ha itt minden sorrend, vagyis az n kulcsnak mind az n! permutációja egyformán valószínű, akkor a kapott fát véletlen építésű bináris keresőfának nevezzük.

• Tétel: Egy n különböző kulcsot tartalmazó véletlen építésű bináris keresőfa várható magassága O(log2n).

[2] 241-2442012. február 8.

Page 32: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Optimális bináris keresőfa

Építés: O(n2)

[2] 314-321

Adott kulcsoknak egy K=(k1,...,kn) sorozataMinden ki kulcshoz ismert annak pi előfordulási valószínűsége

Minden di intervallumhoz ismert annak qi előfordulási valószínűsége, hogy arra az intervallumra keresünk (sikertelen keresésekhez)

Optimális bináris keresőfa építhető (pl. dinamikus programozás módszerével)

2012. február 8.

Page 33: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Bináris fa inorder bejárása

function bejar(p){ if (p.bal!=nil) bejar(p.bal) ; muvelet(p) ; if (p.jobb!=nil) bejar(p.jobb) ;}

2012. február 8.

Page 34: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

function bejar(p){ if (p.bal!=nil) bejar(p.bal) ; muvelet(p) ; if (p.jobb!=nil) bejar(p.jobb) ;}

5

3 7

1 4 6

function bejar(p){ if (p.bal!=nil) bejar(p.bal) ; muvelet(p) ; if (p.jobb!=nil) bejar(p.jobb) ;}

function bejar(p){ if (p.bal!=nil) bejar(p.bal) ; muvelet(p) ; if (p.jobb!=nil) bejar(p.jobb) ;}

5

3

1

1 3 44

5

7

1 2 3 4 5

66

76rang(p)

2012. február 8.

Page 35: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Rendezettminta-fa

• Minden p ponthoz tároljuk p gyökerű fa belső pontjainak számát (méretét)

• Adott rangú elem keresése - T[r]

• Adott elem rangjának meghatározása

• Egyéb bővítési lehetőségek(pl. intervallumfák)

[2] 272-277

[2] 279-285

2012. február 8.

Page 36: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Példa2620

1712

147

162

104

72

31

121

141

214

192

201

211

417

305

471

281

383

351

391

2012. február 8.

Page 37: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Adott rangú elem keresése

rmkeres(p,x) { r=p.bal.meret+1 ; if (x==r) return p ; if (x<r) return rmkeres(p.bal,x) ; else return rmkeres(p.jobb,x-r) ;}

417

305

471

281

383

351

391

2012. február 8.

Page 38: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Elem rangjának meghatározása

rmrang(p) { r=p.bal.meret+1 ; y=x ; while (y!=gyoker) { if (y==y.apa.jobb) r+=y.apa.bal.meret+1; y=y.apa ; } return r ;}

417

305

471

281

383

351

391

2012. február 8.

Page 39: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Méret információ fenntartása417

305

471

281

383

351

391

401

392

384

306

418beszjav(p) {

while (p!=gyoker) { p=p.apa; p.meret++ ; }}

torljav(p) { while (p!=gyoker) { p=p.apa; p.meret-- ; }}

2012. február 8.

Page 40: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Fapont tárolása

struct fapont{ int key, v, meret ; fapont bal, jobb, apa ;}

key meret

balfiu jobbfiu

apa

első megközelítés, a gyakorlatban nem így tároljuk!

v

2012. február 8.

Page 41: Algoritmusok és Adatszerkezetek II.tnemeth/eloadas/a2_1.pdf · • PTI BSC Záróvizsga tételek: • Algoritmusok tervezése, hatékony adatszerkezetek működésének ismerete

Köszönöm a figyelmet!

• [1] T. H. Cormen, C. E. Leiserson, R.L. Rivest: Algoritmusok, Műszaki Könyvkiadó, 2003.

• [2] T. H. Cormen, C. E. Leiserson, R.L. Rivest, C. Stein: Új algoritmusok, Scolar Kiadó, 2003.

• [3] T. Ottman, P. Widmayer: Algoritmen und Datenstrukturen, Wissenschaftsverlag, 1990

Referenciák

2012. február 8.