Top Banner
Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus adatszerkezetekek A fa adatszerkezet Bináris fa Bejárási algoritmusok Preorder bejárás Inorder bejárás Postorder bejárás Reprezentáció Kifejezésfák Implementáció Kupac Kupacrendezés 5.1 5. el ˝ oadás Hierarchikus adatszerkezetek Fák, bináris fák, bejárások Adatszerkezetek és algoritmusok el˝ oadás 2020. március 10. Kósa Márk, Pánovics János, Szathmáry László és Halász Gábor Debreceni Egyetem Informatikai Kar
152

Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Jun 12, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.1

5. eloadásHierarchikus adatszerkezetekFák, bináris fák, bejárások

Adatszerkezetek és algoritmusok eloadás2020. március 10.

Kósa Márk, Pánovics János,Szathmáry László és Halász Gábor

Debreceni EgyetemInformatikai Kar

Page 2: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.2

Általános tudnivalókAjánlott irodalom:

• Thomas H. Cormen, Charles E. Leiserson, Ronald L.Rivest, Clifford Stein:Új algoritmusok, Scolar Informatika, 2003.

• Donald E. Knuth: A számítógépprogramozás muvészete1. (Alapveto algoritmusok), Muszaki Könyvkiadó, 1994.

• Donald E. Knuth: A számítógépprogramozás muvészete3. (Keresés és rendezés), Muszaki Könyvkiadó, 1994.

• Seymour Lipschutz: Adatszerkezetek,Panem-McGraw-Hill, Budapest, 1993.

• Rónyai Lajos, Ivanyos Gábor, Szabó Réka: Algoritmusok,Typotex, Budapest, 2008.

Félév teljesítésének feltételei:• Gyakorlati aláírás

– 2 ZH• Írásbeli vizsga, aminek az értékelésébe ...

További részletek:http://hallg.inf.unideb.hu/~halasz

Page 3: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.3

Hierarchikus adatszerkezetek

Hierarchikus adatszerkezet

A szekvenciális adatszerkezet általánosítása:• minden adatelemének – egyet kivéve –• pontosan egy megelozoje,• és tetszoleges számú (akár 0) rákövetkezoje lehet.

Hierarchikus adatszerkezetek:

• fa• hierarchikus lista

Page 4: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 5: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 6: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 7: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 8: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 9: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 10: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 11: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

Page 12: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

0.

1.

2.

3.

Page 13: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.4

A fa adatszerkezetHomogén, dinamikus, hierarchikus adatszerkezet.Fa adatszerkezetekkel kapcsolatos fogalmak:

• csúcs, csomópont• gyökérelem• levélelem• közbenso elem• él• út• részfa• szint• magasság

0.

1.

2.

3.

4

Page 14: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.5

Rendezetlen és rendezett fákRendezetlen fáknál nem lényeges az ugyanazon csúcsbólkiinduló élek sorrendje, rendezett fáknál viszont igen.

a

bc

d ef

g

a

b c

def

g

Az ábrán látható két fa ekvivalens egymással, ha eltekintünkaz ugyanazon csúcsokból kiinduló élek sorrendjétol (azaz harendezetlen fáknak tekintjük oket).

Mivel az informatikában a rendezett adatszerkezetek játszanakfontos szerepet, a továbbiakban rendezett fákkal foglalkozunk.

Page 15: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.6

Bináris fa

Bináris fa

Olyan fa, melyben minden adatelemnek legfeljebb kétrákövetkezoje van.

Szigorú értelemben vett bináris fa

Szigorú értelemben vett bináris fáról beszélünk, ha a binárisfában minden adatelemnek 0 vagy 2 rákövetkezoje van.

Rendezett bináris fa

Rendezett bináris fa elemeire értelmezhetok a következofogalmak:• bal/jobb oldali rákövetkezo• bal/jobb oldali részfa

A továbbiakban bináris fa alatt – hacsak mást nem mondunk –rendezett bináris fát értünk.

Page 16: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.7

Nem bináris fa rendezett bináris fává alakítása

Minden nem bináris fa reprezentálható rendezett bináris fával.

Tetszoleges fa binarizálásának algoritmusa

1 Legyen a bináris fa gyökere a nem bináris fa gyökere.2 A bináris fa egy tetszoleges elemének bal oldali

rákövetkezoje legyen a nem bináris fa megfelelo eleménekbal oldali (elso) rákövetkezoje.

3 A bináris fa egy tetszoleges elemének jobb oldalirákövetkezoje legyen a nem bináris fa megfelelo eleménekkövetkezo (azonos szülohöz tartozó) testvércsúcsa.

a

b c d

e f g h

a

b c d

e f g h

Page 17: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.8

Bináris fával végezheto muveletek

Bináris fával végezheto muveletek

• Létrehozás: üres fa.• Bovítés: egy elemmel vagy egy részfával, általában

levélelemnél.• Törlés: részfát vagy egy elemet, utóbbi esetben a fát a

legtöbb esetben újra kell szervezni (hogy továbbra is famaradjon).

• Csere: megengedett.• Rendezés: nincs.• Keresés, elérés és feldolgozás: a bejárás algoritmusa

alapján.• Bejárás: szokás szerint olyan algoritmus, amelynek

segítségével a bináris fa elemeit leképezzük egy sorra(preorder, inorder vagy postorder módon).

Page 18: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

Page 19: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

Page 20: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

aa

Page 21: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a ba

b

Page 22: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b ca

b

c

Page 23: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b c da

b

c d

Page 24: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b c d ea

b

c d

e

Page 25: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b c d e ia

b

c d

e

i

Page 26: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b c d e i ga

b

c d

e

i

g

Page 27: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b c d e i g ha

b

c d

e

i

g h

Page 28: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.9

Bináris fa bejárási algoritmusai

Preorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).3 Járjuk be a gyökérelem bal oldali részfáját preorder

módon.4 Járjuk be a gyökérelem jobb oldali részfáját preorder

módon.

a

b

c d

e

f

g h

i

a b c d e i g hi fa

b

c d

e

i

g h

f

Page 29: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

Page 30: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

Page 31: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

Page 32: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

Page 33: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c

c

Page 34: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b

c

b

Page 35: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d

c

b

d

Page 36: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a

c

b

d

a

Page 37: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a

c

b

d

a

Page 38: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a

c

b

d

a

Page 39: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a g

c

b

d

a

g

Page 40: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a g i

c

b

d

a

g

i

Page 41: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a g i h

c

b

d

a

g

i

h

Page 42: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a g i h e

c

b

d

a

g

i

h

e

Page 43: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.10

Bináris fa bejárási algoritmusai

Inorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját inorder módon.3 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).4 Járjuk be a gyökérelem jobb oldali részfáját inorder

módon.

a

b

c d

e

f

g h

i

c b d a g i h e f

c

b

d

a

g

i

h

e

f

Page 44: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

Page 45: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

Page 46: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

Page 47: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

Page 48: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c

c

Page 49: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d

c d

Page 50: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b

c d

b

Page 51: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b

c d

b

Page 52: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b

c d

b

Page 53: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b g

c d

b

g

Page 54: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b g h

c d

b

g h

Page 55: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b g h i

c d

b

g h

i

Page 56: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b g h i f

c d

b

g h

i f

Page 57: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b g h i f e

c d

b

g h

i f

e

Page 58: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.11

Bináris fa bejárási algoritmusai

Postorder bejárás algoritmusa

1 Ha a bejárandó fa üres, az algoritmus véget ér.2 Járjuk be a gyökérelem bal oldali részfáját postorder

módon.3 Járjuk be a gyökérelem jobb oldali részfáját postorder

módon.4 Dolgozzuk fel a gyökérelemet (más szavakkal: helyezzük

a gyökérelemet a sor végére).

a

b

c d

e

f

g h

i

c d b g h i f e a

c d

b

g h

i f

e

a

Page 59: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.12

Bináris fa folytonos reprezentációjaHárom vektor segítségével, ahol a vektorok azonos indexuelemei a következo információkat tárolják:

• az ADAT vektorban az adatelem értékét,• a BAL vektorban a bal oldali rákövetkezo vektorbeli

indexét,• a JOBB vektorban a jobb oldali rákövetkezo vektorbeli

indexét.

Általában a fa gyökérelemét e vektorok elso eleme írja le.

a

b

c d

e

f

g h

i

ADAT BAL JOBB1. a 2 52. b 3 43. c 0 04. d 0 05. e 6 96. i 7 87. g 0 08. h 0 09. f 0 0

Page 60: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.13

Bináris fa szétszórt reprezentációja

A faelemek adatrésze az adatelem értékét tartalmazza, amutatórész pedig két mutatót: egyet, amely a bal oldalirákövetkezot leíró faelemet címzi, és egy másikat, amely a jobboldali rákövetkezot leíró faelemet címzi. A gyökérelemhez (ésrajta keresztül az adatszerkezet többi eleméhez) a „gyökér”mutató segítségével tudunk hozzáférni.

a

b

c d

e

f

g h

i

gyökérmutató

a

b e

nil c nil nil d nil i nil f nil

nil g nil nil h nil

Page 61: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.14

Kifejezésfák és a bejárások kapcsolata

Kifejezésfa

A kifejezésfa olyan fa, melyben a levélelemek egy kifejezésoperandusait, a nem levél elemek pedig ugyanazon kifejezésoperátorait tartalmazzák.

+

/ ∗

a b − c

d e

prefix: + / a b ∗ − d e c

infix: a / b + d − e ∗ c

postfix: a b / d e − c ∗ +

Aszerint, hogy a kifejezésfát – a korábban említettek közül –melyik bejárási algoritmussal járjuk be, kapjuk a kifejezés

prefix, infix és postfix alakját.

Page 62: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.15

Kifejezésfák és a bejárások kapcsolata

A prefix és a postfix alak egyértelmu, az infix nem az (dezárójelek használatával azzá teheto).

Példa

Az alábbi két kifejezésfát inorder módon bejárva ugyanazt azinfix kifejezést kapjuk:

+

/ ∗

a b − c

d e

+ c

/ −

a b d e

a / b + d − e ∗ c

Zárójelezést alkalmazva:

(a / b) + ((d − e) ∗ c) ((a / b) + (d − e)) ∗ c

Page 63: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.16

Bináris fa implementálása

Üres fa létrehozása

typedef struct faelem {tipus adat;struct faelem *bal;struct faelem *jobb;

} FAELEM;

FAELEM *gyoker = NULL;

Bináris fa bejárása inorder stratégiával

void inorder_bejaras(FAELEM *csucs){

if (csucs != NULL){

inorder_bejaras(csucs->bal);feldolgoz(csucs);inorder_bejaras(csucs->jobb);

}}

Page 64: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.17

A kupac definíciója

Kupac

A kupac olyan fa, amely rendelkezik a kupac tulajdonsággal:• a gyökérelemet kivéve bármely adatelemének a kulcsa

kisebb vagy egyenlo az adatelem szülojének a kulcsánál.Az ilyen fában a legnagyobb kulcsú elem mindig a gyökérelem,ezért max-kupacnak is nevezzük. Ha megfordítjuk a relációt,akkor a gyökérelem lesz a legkisebb kulcsú elem, ekkormin-kupacot kapunk.

Megjegyzés

A kupac egyes elemeiben a gyermek csomópontok számáranézve általában nincs megszorítás. A kupac adatszerkezetnekrengeteg változata létezik attól függoen, hogy hány gyermekcsomópontja lehet az egyes elemeknek.

Page 65: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.18

Bináris kupacBináris kupac

A bináris kupac olyan bináris fa, amely a kupac tulajdonságonkívül az alak tulajdonsággal is rendelkezik: a fa teljes binárisfa, azaz minimális magasságú, és ha a legalsó szint nincsteljesen kitöltve, akkor azon a szinten a csomópontok balróljobbra kerülnek feltöltésre.

Megjegyzés

A kupac tulajdonság nem határozza meg a gyermekcsomópontok sorrendjét, ezért azok tetszolegesenfelcserélhetok, hacsak meg nem sértik az alak tulajdonságot.

Példa bináris max-kupacra: 50

19 36

17 3 25 1

2 7

Page 66: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.19

EllenpéldákSérül a kupac tulajdonság:

50

19 36

30 3 25 1

2 7

Sérül az alak tulajdonság:

50

19 36

17 3 25 1

2 7 22

Page 67: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.20

A bináris kupac reprezentációjaAz alak tulajdonság miatt a bináris kupacot leggyakrabban egytömbbel reprezentáljuk. Nincs szükség mutatókra, mivelbármely adatelem szülojének és gyermekeinek az indexeegyszeru számtani muveletekkel meghatározható az adatelemindexébol. Ha a tömb indexelése 1-rol indul, akkor az Ai elem• gyermekei az A2i és az A2i+1,• szüloje az Ab i

2c elem lesz.50

19 36

17 3 25 1

2 7

50

1

19

2

36

3

17

4

3

5

25

6

1

7

2

8

7

9

Page 68: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 3 25 1

2 7

Page 69: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 3 25 1

2 7

Page 70: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 3 25 1

2 7 2

Page 71: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 3 25 1

2 7 2

Page 72: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 3 25 1

2 7 2

Page 73: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 3 25 1

2 7 2 30

Page 74: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

19 36

17 30 25 1

2 7 2 3

Page 75: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

30 36

17 19 25 1

2 7 2 3

Page 76: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

30 36

17 19 25 1

2 7 2 3

Page 77: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

30 36

17 19 25 1

2 7 2 3

Page 78: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

30 36

17 19 25 1

2 7 2 3 60

Page 79: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

30 36

17 19 60 1

2 7 2 3 25

Page 80: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

50

30 60

17 19 36 1

2 7 2 3 25

Page 81: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.21

Beszúrás bináris kupacba

• beszúr: 2• beszúr: 30• beszúr: 60

60

30 50

17 19 36 1

2 7 2 3 25

Page 82: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.22

Kupacosítás

• Legyen i az A tömb egy olyan elmének az indexe,amelyre:

– Az A[i] elem baloldali és jobboldali részfái kupacok.– Elképzelheto viszont, hogy A[i] kisebb mint a gyerekei,

vagyis sérül a kupac tulajdonság.• A kupacosítás során az i . pozíción lévo bináris részfából

kupacot csinálunk úgy, hogy az A[i] elemet lefelémozgatjuk a kupacban.

Page 83: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.23

Kupacosítás

• A kupac tulajdonság sérül az 1-es indexu elem esetében.A 2-es és 3-as indexu részfák viszont kupacok.

• SZITÁL(K,1,n)

28

30 50

17 19 36 1

2 7 2 3 25

Page 84: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.23

Kupacosítás

• A kupac tulajdonság sérül az 1-es indexu elem esetében.A 2-es és 3-as indexu részfák viszont kupacok.

• SZITÁL(K,1,n)

28

30 50

17 19 36 1

2 7 2 3 25

Page 85: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.23

Kupacosítás

• A kupac tulajdonság sérül az 1-es indexu elem esetében.A 2-es és 3-as indexu részfák viszont kupacok.

• SZITÁL(K,1,n)

28

30 50

17 19 36 1

2 7 2 3 25

Page 86: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.23

Kupacosítás

• A kupac tulajdonság sérül az 1-es indexu elem esetében.A 2-es és 3-as indexu részfák viszont kupacok.

• SZITÁL(K,1,n)

50

30 28

17 19 36 1

2 7 2 3 25

Page 87: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.23

Kupacosítás

• A kupac tulajdonság sérül az 1-es indexu elem esetében.A 2-es és 3-as indexu részfák viszont kupacok.

• SZITÁL(K,1,n)

50

30 28

17 19 36 1

2 7 2 3 25

Page 88: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.23

Kupacosítás

• A kupac tulajdonság sérül az 1-es indexu elem esetében.A 2-es és 3-as indexu részfák viszont kupacok.

• SZITÁL(K,1,n)

50

30 36

17 19 28 1

2 7 2 3 25

Page 89: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.24

Maximális elem törlése (#1)

• A legnagyobb elem a kupac tetején található. Ez a kupacgyökere.

• Ezt kitörölhetjük, s felhozzuk a helyére az egyik gyerekét.• Az üres hely lefelé mozog a fában.• Az üres hely bárhová kerülhet az utolsó szinten.• Az így létrejövo fa utolsó szintjén az elemek jó eséllyel

nem lesznek balra rendezettek, vagyis sérül az alaktulajdonság.

Page 90: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

50

30 36

17 19 28 18

2 7 2 3 25 22 16

Page 91: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

30 36

17 19 28 18

2 7 2 3 25 22 16

Page 92: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

30 36

17 19 28 18

2 7 2 3 25 22 16

Page 93: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

36

30

17 19 28 18

2 7 2 3 25 22 16

Page 94: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

36

30

17 19 28 18

2 7 2 3 25 22 16

Page 95: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

36

30 28

17 19 18

2 7 2 3 25 22 16

Page 96: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

36

30 28

17 19 18

2 7 2 3 25 22 16

Page 97: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

36

30 28

17 19 25 18

2 7 2 3 22 16

Page 98: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.25

Maximális elem törlése (#1)

36

30 28

17 19 25 18

2 7 2 3 22 16

Nem teljesül az alak tulajdonság.

Page 99: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

50

30 36

17 19 28 18

2 7 2 3 25 22 16

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 100: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

50

30 36

17 19 28 18

2 7 2 3 25 22 16

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 101: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

30 36

17 19 28 18

2 7 2 3 25 22 16

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 102: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

16

30 36

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 103: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

16

30 36

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 104: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

16

30 36

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 105: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

16

30 36

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 106: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

16

30 36

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 107: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

36

30 16

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 108: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

36

30 16

17 19 28 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 109: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

36

30 28

17 19 16 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 110: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

36

30 28

17 19 16 18

2 7 2 3 25 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 111: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.26

Maximális elem törlése (#2)

36

30 28

17 19 25 18

2 7 2 3 16 22

• Írjuk felül a kupac tetején lévo elemet a kupac utolsóelemével.

• SZITÁL(K,1,n)

Page 112: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

7 19 25 1

36 3

Page 113: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

7 19 25 1

36 3

Page 114: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

7 19 25 1

36 3

Page 115: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

36 19 25 1

7 3

Page 116: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

36 19 25 1

7 3

Page 117: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

36 19 25 1

7 3

Page 118: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

2 50

36 19 25 1

7 3

Page 119: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

36 50

2 19 25 1

7 3

Page 120: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

36 50

7 19 25 1

2 3

Page 121: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

17

36 50

7 19 25 1

2 3

Page 122: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

50

36 17

7 19 25 1

2 3

Page 123: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.27

Kupac építése

• A legalsó szinten kezdünk s onnan haladunk felfelé,jobbról balra haladva.

• Kezdetben minden levélelem kupac.

1: procedure KUPAC-ÉPÍTÉSE(A)2: for i ← bméret(A)/2c downto 1 do3: SZITÁL(A, i , méret(A))4: end for5: end procedure

50

36 25

7 19 17 1

2 3

Page 124: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.28

Kupacrendezés

A kupac segítségével viszonylag egyszeruen implementálhatóegy olyan helyben rendezo algoritmus, amely általánosesetben majdnem olyan gyors, mint a gyorsrendezés, alegrosszabb esetben viszont gyorsabb annál.

Az ötlet

Eloször is bináris max-kupaccá alakítjuk a rendezendo tömböt.Ezután kicseréljük a tömb elso (legnagyobb) elemét azutolsóval, amely így a helyére kerül. Helyreállítjuk a binárismax-kupacot az utolsó elem elhagyásával kapott résztömbben,majd kicseréljük az elso elemet az utolsó elottivel, és ígytovább...

Megjegyzés

Az algoritmus alatt a tömb eleje tartalmazza a kupacot, a végepedig a már rendezett résztömböt.

Page 125: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.29

A kupacrendezés algoritmusa

1: procedure KUPACRENDEZÉS(A)2: KUPACOSÍT(A)3: vég← méret(A)4: while vég > 1 do5: CSERÉL(A, 1, vég)6: vég← vég− 17: SZITÁL(A, 1, vég)8: end while9: end procedure

1: procedure KUPACOSÍT(A)2: start ← bméret(A)/2c

. start kezdetben az utolsó nem levél elem indexe3: while start ≥ 1 do4: SZITÁL(A, start , méret(A))5: start ← start − 16: end while7: end procedure

Page 126: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.30

A szitálás algoritmusa

1: procedure SZITÁL(A, bal , jobb)2: gyökér← bal3: while gyökér ∗ 2 ≤ jobb do4: gyerek ← gyökér ∗ 2

. gyerek a gyökér bal oldali gyermeke5: csere← gyökér

. csere a gyökér azon gyermeke, amelyikkel ki kell ot cserélni6: if A[csere] < A[gyerek ] then7: csere← gyerek8: end if9: if gyerek < jobb and A[csere] < A[gyerek + 1] then

10: csere← gyerek + 111: end if12: if csere 6= gyökér then13: CSERÉL(A, gyökér, csere)14: gyökér← csere15: else16: return17: end if18: end while19: end procedure

Page 127: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

17

2 50

7 19 25 1

36 3

17 2 50 7 19 25 1 36 3

Page 128: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

17

2 50

36 19 25 1

7 3

17 2 50 36 19 25 1 7 3

Page 129: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

17

2 50

36 19 25 1

7 3

17 2 50 36 19 25 1 7 3

Page 130: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

17

36 50

2 19 25 1

7 3

17 36 50 2 19 25 1 7 3

Page 131: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

17

36 50

7 19 25 1

2 3

17 36 50 7 19 25 1 2 3

Page 132: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

50

36 17

7 19 25 1

2 3

50 36 17 7 19 25 1 2 3

Page 133: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.31

Példa kupacrendezésreKupacosítás:

50

36 25

7 19 17 1

2 3

50 36 25 7 19 17 1 2 3

Page 134: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

50

36 25

7 19 17 1

2 3

50 36 25 7 19 17 1 2 3

Page 135: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

3

36 25

7 19 17 1

2

3 36 25 7 19 17 1 2 50

Page 136: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

36

3 25

7 19 17 1

2

36 3 25 7 19 17 1 2 50

Page 137: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

36

19 25

7 3 17 1

2

36 19 25 7 3 17 1 2 50

Page 138: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

2

19 25

7 3 17 1

2 19 25 7 3 17 1 36 50

Page 139: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

25

19 2

7 3 17 1

25 19 2 7 3 17 1 36 50

Page 140: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

25

19 17

7 3 2 1

25 19 17 7 3 2 1 36 50

Page 141: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

1

19 17

7 3 2

1 19 17 7 3 2 25 36 50

Page 142: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

19

1 17

7 3 2

19 1 17 7 3 2 25 36 50

Page 143: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

19

7 17

1 3 2

19 7 17 1 3 2 25 36 50

Page 144: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

2

7 17

1 3

2 7 17 1 3 19 25 36 50

Page 145: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

17

7 2

1 3

17 7 2 1 3 19 25 36 50

Page 146: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

3

7 2

1

3 7 2 1 17 19 25 36 50

Page 147: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

7

3 2

1

7 3 2 1 17 19 25 36 50

Page 148: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

7

3 2

1

7 3 2 1 17 19 25 36 50

Page 149: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

1

3 2

1 3 2 7 17 19 25 36 50

Page 150: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

3

1 2

3 1 2 7 17 19 25 36 50

Page 151: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

2

1

2 1 3 7 17 19 25 36 50

Page 152: Hierarchikus adatszerkezetek Kósa Márk 5. eloadás ...halasz/Adatszerk-PTI-2017/...Hierarchikus adatszerkezetek Kósa Márk Pánovics János Szathmáry László Halász Gábor Hierarchikus

Hierarchikusadatszerkezetek

Kósa MárkPánovics János

Szathmáry LászlóHalász Gábor

Hierarchikusadatszerkezetekek

A fa adatszerkezetBináris fa

Bejárási algoritmusok

Preorder bejárás

Inorder bejárás

Postorder bejárás

Reprezentáció

Kifejezésfák

Implementáció

KupacKupacrendezés

5.32

Példa kupacrendezésreRendezés:

1

1 2 3 7 17 19 25 36 50