74
Adatszerkezetekkel kapcsolatos alapfogalmak Kósa Márk Pánovics János Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet Absztrakció, modellalkotás Absztrakt adatszerkezetek Ábrázolási módok Folytonos (vektorszer˝ u) tárolás Szétszórt (láncolt) tárolás Reprezentáció és implementáció Algoritmusok Algoritmusok megadásának módjai Algoritmusok épít ˝ oelemei Gazdálkodás a memóriával Struktúra nélküli adatszerkezetek A halmaz A multihalmaz Asszociatív adatszerkezetek A tömb Háromszögmátrixok Dinamikus tömb 3.1 3. el ˝ oadás Adatszerkezetekkel kapcsolatos alapfogalmak Reprezentáció és implementáció, algoritmusok, a halmaz és a multihalmaz, tömbök. Adatszerkezetek és algoritmusok el˝ oadás 2019. február 19. Kósa Márk, Pánovics János, Szathmáry László és Halász Gábor Debreceni Egyetem Informatikai Kar

Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.1

3. eloadásAdatszerkezetekkel kapcsolatosalapfogalmakReprezentáció és implementáció, algoritmusok, a halmaz és amultihalmaz, tömbök.

Adatszerkezetek és algoritmusok eloadás2019. február 19.

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

Debreceni EgyetemInformatikai Kar

Page 2: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.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: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.3

Beszúró rendezés

procedure BESZÚRÓ-RENDEZÉS(A)1 for j← 2 to méret(A) do2 kulcs← A[j]3 i← j – 14 while i ≥ 1 és A[i] > kulcs do5 A[i + 1]← A[i]6 i← i – 17 end while8 A[i + 1]← kulcs9 end for

end procedure

• Vegyük észre: a while ciklus lineáris keresést használkulcs helyének meghatározására az A „elejében”.

• Lehetne ezt bináris keresésre cserélni?

Page 4: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.4

Rendszer

• Elemek: egyedek

• Tulajdonságok (statikus rész)• Viselkedés (dinamikus rész)• Kölcsönhatás• Komplex rendszer• Nyílt rendszer• Dinamikus rendszer

Page 5: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.5

Absztrakció, modellezés

• Modellalkotás, absztrakció• Adatmodell, eljárásmodell• Adat, információ

Az adatelemek lehetnek egyszeruek (atomiak) és összetettek.Minden adatelem rendelkezik valamilyen értékkel.

Az adatelemek között jól meghatározott kapcsolatrendszervan. Az adatelemek és a közöttük lévo kapcsolatok definiáljáka logikai (absztrakt) adatszerkezetet. Független hardvertol,szoftvertol.

Fizikai adatszerkezet (társzerkezet): adatszerkezet az operatívtárban vagy periférián (háttértáron).

Page 6: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.6

Absztrakt adatszerkezetek osztályozása

Lehetséges csoportosítási szempontok:

1 Változhat-e az adatszerkezet elemeinek száma?• statikus• dinamikus

2 Milyen az adatszerkezet elemeinek a típusa?• homogén• heterogén

3 Milyen kapcsolatban állnak egymással az adatelemek azadatszerkezetben?

Egy homogén adatszerkezet lehet• struktúra nélküli• asszociatív• szekvenciális• hierarchikus• hálós

A heterogén adatszerkezeteket nem csoportosítjuk ilyenszempont alapján.

Page 7: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.7

Absztrakt adatszerkezetekkel végezheto muveletek(Alapveto algoritmusok)

1 Létrehozás2 Módosítás

• bovítés• törlés (fizikai, logikai)• csere

3 Rendezés4 Keresés5 Elérés6 Bejárás7 Feldolgozás

Page 8: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.8

Ábrázolási (tárolási) módok

Ábrázolás alatt az adatszerkezet memóriában való megjelenésiformáját értjük. Ez minden adatszerkezet esetén lehet

• folytonos (vektorszeru)• szétszórt (láncolt)

Az adatelemek számára tárhelyeket foglalunk a memóriában.Egy tárhely mindig egy bájtcsoportot jelent, amely egyadatelem értékét tárolja, illetve szerkezetleíró információkat ishordozhat.

Page 9: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.9

Folytonos (vektorszeru) tárolás

Egy tárhelyen egy adatelem értékét tároljuk. A tárhelyek amemóriában folytonos, összefüggo tárterületet alkotnak, atárhelyek mérete azonos.

Elonye:

• közvetlen elérés, a kezdocím és az egy adatelemheztartozó tárhely méretének ismeretében

• a csere muvelete könnyen megvalósítható• hatékony rendezo algoritmusok (pl. gyorsrendezés)• hatékony kereso algoritmusok (pl. bináris keresés)

Hátránya:

• nem segíti a bovítés és a fizikai törlés muveleténekvégrehajtását

Page 10: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.10

Szétszórt (láncolt) tárolás

Egy tárhelyen egy adatelem értékét (adatrész) és legalább egymutató értékét (mutatórész) tároljuk. A mutatók értékeimemóriacímek lehetnek, amelyek megmondják az adatelemrákövetkezoinek tárbeli helyét. A tárhelyek mérete nemszükségképpen azonos, elhelyezkedésük a memóriábantetszoleges.

tárhely︷ ︸︸ ︷︸ ︷︷ ︸

adatrész︸ ︷︷ ︸

mutatórész

A szétszórt ábrázolási mód alapveto fajtái:

• egyirányban láncolt lista• cirkuláris lista• kétirányban láncolt lista• multilista

Page 11: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.11

Egyirányban láncolt lista

A tárhely (listaelem) az adatelem értékén kívül egy mutatóttartalmaz, amely a következo listaelem címét tartalmazza.

nil

fej

tárhely(listaelem)︷ ︸︸ ︷

︸ ︷︷ ︸adat-rész

︸︷︷︸mutató-

rész

A láncolt lista elso elemének tárbeli címét egy mutató, afejmutató tárolja.A láncolt lista végét egy speciális érték, a NIL érték jelzi.Amennyiben a fejmutató tartalmazza ezt az értéket, akkor azegyirányban láncolt lista üres

Page 12: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.12

Cirkuláris lista

Hasonló az egyirányban láncolt listához, ám itt egyik listaelemmutatórésze sem tartalmazhatja a NIL értéket: az „utolsó”listaelem mutatórészébe az „elso” listaelem címe kerül.

fej

tárhely(listaelem)︷ ︸︸ ︷

︸ ︷︷ ︸adat-rész

︸︷︷︸mutató-

rész

A cirkuláris lista „elso” elemének tárbeli címét most is egymutató, a fejmutató tárolja. Amennyiben a fejmutató a NILértéket tartalmazza, akkor a cirkuláris lista üres.

Page 13: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.13

Kétirányban láncolt lista

Hasonló az egyirányban láncolt listához, ám itt mindenlistaelem mutatórésze két részbol áll: az egyik mutató az adottlistaelemet megelozo, a másik az adott listaelemet követolistaelemre mutat.

egyikfej

másikfej

adat-rész︷ ︸︸ ︷ mutató-

rész︷ ︸︸ ︷︸ ︷︷ ︸

tárhely(listaelem)

nil

nil

Két lánc alakul ki, két fejmutatóval. A fejmutatók a kétiránybanláncolt lista elso és utolsó elemére mutatnak. Ha mindkétfejmutató értéke NIL, akkor a kétirányban láncolt listának nincsegyetlen eleme sem, azaz üres.

Page 14: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.14

Multilista (1)

Ebben a változatban a listaelemek adatrésze összetett. Azadatrész minden komponensére fölépítheto egy egyiránybanláncolt lista.

betű

szám

︸ ︷︷ ︸adat-rész

︸ ︷︷ ︸mutató-

rész

tárhely(listaelem)︷ ︸︸ ︷

A R

G

nil54 79

18 nil

Annyi lánc alakítható ki, ahány komponensbol áll az adatrész.Minden lista külön fejmutatóval rendelkezik, és mindenlistaelem mindegyik láncban elofordul egyszer.

Page 15: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.15

Multilista (2)

Ebben a változatban a listaelemek adatrésze általábanösszetett. Az adatrész valamely komponensének értékeitfigyelembe véve építjük föl az egyirányban láncolt listákat.

1975

1977

1978

Adamkó 1978 Espák 1978

Jeszenszky 1975 Kollár 1977

Kósa 1975 Pánovics 1975 nil

nil

nil

Annyi lánc alakul ki, ahány különbözo értéket az adatrész adottkomponense felvesz. Minden lista külön fejmutatóvalrendelkezik, és minden listaelem csak egy láncban szerepel,pontosan egyszer.

Page 16: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.16

Multilista (3)

Ebben a változatban a listaelemek tartalmaznak egy-egyfejmutatót is, melyek újabb láncolt listák elso elemeiremutatnak.

nilnil

nil

nil

fej

A B D

Béla

Aladár Anna

Az allisták szerkezete eltérhet a folista szerkezetétol.

Page 17: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.17

Reprezentáció és implementáció

Absztrakt adatszerkezetek grafikus (képi) megjelenítésénélhasznált jelölések:

:

:

adatelem

kapcsolat két adatelem között

Amikor egy absztrakt adatszerkezethez megadjuk a tárolásimódját és a leképezését, akkor megadjuk az absztraktadatszerkezet reprezentációját.

absztrakt adatszerkezetleképezés−−−−−−→ ábrázolás

Ha a reprezentáció mellé megadjuk a muveletekmegvalósítását (algoritmusok) is, akkor megadjuk az absztraktadatszerkezet implementációját.

Page 18: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.18

Algoritmus fogalma

Olyan eljárás (elemi lépések sorozata), melynek során akövetkezok teljesülnek:

• jól meghatározott objektumokon jól meghatározottmuveleteket végzünk

• minden lépés elvégzése után egyértelmuen definiálthelyzet áll elo

• véges sok lépés után végetér• nem csak egy feladatra, hanem egy feladatosztály tagjaira

érvényes

Page 19: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.19

Algoritmusok megadásának módjai

Algoritmusokat a következo módokon lehet megadni:

• természetes (beszélt) emberi nyelven• pontokba szedett természetes nyelvi „utasításokkal”• folyamatábrával• pszeudonyelvvel (lásd gyakorlaton)• valamilyen programozási nyelven

Page 20: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.20

Példa folyamatábrával

START

be: N

összeg← 0i← 1

i ≤ Nösszeg← összeg + i

i← i+ 1

igenki: összeg

nemSTOP

Page 21: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.21

Algoritmusok építoelemei

Vezérlési szerkezetek

1 szekvencia(utasítások végrehajtása a felírás sorrendjében)

2 szelekció(elágazások)

3 iteráció(ciklusok)

4 alprogramok hívása(„kész” algoritmusok bevonása a részfeladatokmegoldásába)

Page 22: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.22

Szabad helyek kezeléseAdatszerkezetek szétszórt ábrázolása esetén

Az adatszerkezetek tárolásához memória kell, ami véges. Aszabad helyekkel gazdálkodni kell!Lehetséges módszerek (a szabad tárhelyek nyilvántartására)

• folytonos ábrázolás esetén:• szabad tárhelyek összegyujtése a lefoglalt tárterület végén

(idoigényes)• szemétgyujtögetés (garbage collection) elemmozgatással• minden tárhelyhez hozzárendelünk egy bitet, ami a

foglaltságot jelzi (nincs elemmozgatás)• szétszórt ábrázolás esetén:

• szabad helyek láncolt listája (probléma: különbözo méretutárhelyek)

• szemétgyujtögetés (garbage collection) a szabad helyekláncolásával

• a szabad helyek nyilvántartása bitvektor segítségével

Page 23: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.23

Halmaz és multihalmaz

A halmaz és a multihalmaz struktúra nélküli, homogén ésdinamikus adatszerkezetek.

A halmaz minden eleme különbözo. A multihalmazbanelofordulhatnak azonos elemek is.Mindkét adatszerkezetre igaz, hogy az adatszerkezetben lévoelemek között nincs kapcsolat (ezért struktúra nélküliadatszerkezetek).

Page 24: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.24

A halmaz adatszerkezet

A halmaz adatszerkezet a matematikai halmaz fogalommegjelenése az adatszerkezetek szintjén. Mindig véges –ennyiben nem felel meg teljesen a matematikai halmazfogalmának.

A halmaz alapmuveletei

• eleme, ∈: megmondja, hogy egy adatelem benne van-e ahalmazban vagy sem

• unió, ∪: két halmaz unióját adja• metszet, ∩: két halmaz metszetét adja• különbség, \: két halmaz különbségét adja

Page 25: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.25

A halmaz adatszerkezet

Az adatszerkezetekkel végezheto hagyományos muveletekmegvalósítása halmazok esetén:

• Létrehozás kétféleképpen:• explicit módon, a halmaz elemeinek felsorolásával (esetleg

üresen)• egy predikátum segítségével

• Bovítés unióképzéssel• Törlés csak fizikai, különbségképzéssel• Csere nincs• Rendezés, keresés, elérés, bejárás nem értelmezettek• Feldolgozás a halmaz alapmuveleteinek a segítségével

Page 26: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.26

A halmaz adatszerkezet reprezentációja

Klasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A Z

R T

ZK

A

D

ES

Page 27: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.26

A halmaz adatszerkezet reprezentációja

Klasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

R T

ZK

A

D

ES

A halmaz lehetséges elemeit sorba rendezzük, s mindegyikhezhozzárendelünk egy egy bit méretu tárterületet.

Page 28: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.26

A halmaz adatszerkezet reprezentációja

Klasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

R T

ZK

A

D

ES

1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1

A halmaz lehetséges elemeit sorba rendezzük, s mindegyikhezhozzárendelünk egy egy bit méretu tárterületet. Az adott értékuadatelemhez tartozó bit fogja jelezni, hogy az adatelem bennevan-e a halmazban (1) vagy sem (0).

Page 29: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.27

A halmaz adatszerkezet implementációja

Folytonos reprezentáció esetén a halmaz alapmuveleteinekmegvalósítása visszavezetheto egyszeru bitmuveletekre:

Unióképzés

x ∈ A ∪ B ⇔ x ∈ A ∨ x ∈ B

Metszetképzés

x ∈ A ∩ B ⇔ x ∈ A ∧ x ∈ B

Különbségképzés

x ∈ A \ B ⇔ x ∈ A ∧ x /∈ B

Page 30: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.28

A multihalmaz adatszerkezet

A multihalmaz abban különbözik a halmaztól, hogy megengediaz adatelemek ismétlodését, benne több azonos értéku elemis elofordulhat.

A multihalmaz alapmuveletei

• eleme, ∈: megmondja, hogy egy adatelem benne van-e amultihalmazban vagy sem

• unió, ∪: két multihalmaz unióját adja• metszet, ∩: két multihalmaz metszetét adja• különbség, \: két multihalmaz különbségét adja

Multihalmazoknál az adatszerkezetekkel végezhetohagyományos muveletek megvalósítása hasonló ahalmazokéhoz (lásd ott). A multihalmaz feldolgozása amultihalmaz alapmuveleteinek a segítségével történik.

Page 31: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A D

A

TS

Z

E

RK

EZ

E T EK

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 32: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 33: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 34: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 35: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1 4

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 36: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1 4 0 0 0 0 0 2

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 37: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 38: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1 1

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 39: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1 1 2

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 40: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.29

A multihalmaz adatszerkezet reprezentációjaKlasszikus reprezentációja folytonosan, karakterisztikusfüggvény segítségével történik.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A D

A

TS

Z

E

RK

EZ

E T EK

2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1 1 2 0 0 0 0 0 2

• A multihalmaz lehetséges elemeit sorba rendezzük, smindegyikhez hozzárendelünk egy tárterületet.

• általában 1 bájtot

• A tárhelyeken az adott értéku elemek elofordulásainakszámát tároljuk.

Page 41: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.30

A multihalmaz adatszerkezet implementációja

Folytonos reprezentáció esetén a multihalmazalapmuveleteinek megvalósítása visszavezetheto egyszeruaritmetikai (számtani) muveletekre:

Unióképzés

x A ∪ B-ben = x A-ban + x B-ben

Metszetképzés

x A ∩ B-ben = min{x A-ban, x B-ben}

Különbségképzés

x A \ B-ben = max{0, x A-ban− x B-ben}

Page 42: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.31

Asszociatív adatszerkezetek

Az asszociatív adatszerkezetek olyan adatszerkezetek,amelyekbol bizonyos adott feltételeknek eleget tevorészhalmazokat választhatunk ki. A legfontosabb muvelet teháta részhalmaz kiválasztásának, a részhalmazképzésnek amuvelete.

A részhalmazok – ahogy az ábrán is látható – átfedhetikegymást. Egyes esetekben a részhalmazok egyelemuek,máskor akárhány elemuek lehetnek.

Page 43: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.32

A tömb adatszerkezet

Statikus, homogén és asszociatív adatszerkezet. A felépítésedefiniálja: benne az adatelemek egymáshoz viszonyítotthelyzete a lényeges.

A tömb bármelyik eleme egész számok sorozatán keresztülérheto el. Minden adatelemhez különbözo egészszám-sorozattartozik, így az asszociativitást biztosító részhalmazokegyelemuek és diszjunktak. A számsorozat számaitindexeknek nevezzük, segítségükkel tudjuk az adatelemetkiválasztani. Az indexek darabszámát a tömb dimenziójánakhívjuk.

Ha mást nem mondunk, a tömb elemeinek az indexelésemindegyik dimenzióban 1-tol indul.

Page 44: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.33

A tömb adatszerkezet

A legegyszerubb eset: egydimenziós tömb (vektor1).

1. 2. 3. 4. 5. 6. 7. 8.

Kétdimenziós tömb (mátrix).

sor

oszlop

Léteznek magasabb dimenziójú tömbök is. A dimenziók számatetszolegesen nagy lehet, de mindig véges.

1A vektor szó minden egyéb jelzo nélküli használatakor statikus,egydimenziós tömbre gondolunk.

Page 45: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.34

Tömbökkel végezheto muveletek• Létrehozás: rögzítjük a dimenziók számát és az

indextartományokat. Ezzel egyben meghatározzuk a tömbelemszámát is. A szerkezet kialakításával párhuzamosanelemeket is elhelyezhetünk a tömbben.

• Bovítés: nincs, ugyanis a tömb statikus.• Csere:

• bármely (létezo) elem értékét felülírhatjuk egy új értékkel• elhelyezhetünk elemet oda, ahová a létrehozáskor nem

tettünk• Törlés: csak logikai.• Elérés: az adatelemek elérése közvetlen, az indexek

segítségével.• Rendezés: egydimenziós tömbök esetén értelmezheto, ott

bármelyik rendezési algoritmus alkalmazható.• Keresés: reprezentációfüggo muvelet, egydimenziós

tömbök esetén nagy a jelentosége, ott bármelyik keresésialgoritmus alkalmazható.

• Bejárás: többdimenziós tömbök eseténreprezentációfüggo muvelet (lásd késobb).

• A feldolgozás alapja a közvetlen elérés.

Page 46: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.35

Tömbök folytonos reprezentációja

Az A[s..t ] egydimenziós tömb leképezése:

as as+1 at

K

• A tároláshoz szükséges tárterület mérete: ` · (t − s + 1)bájt, ahol ` az egy adatelem tárolásához szükségestárhely mérete.

• Ha ismerjük a tárterület kezdocímét (K ), akkor akövetkezo címfüggvény segítségével bármely elem tárbelicíme meghatározható:

az i indexu elem címe = K + ` · (i − s)

Page 47: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.35

Tömbök folytonos reprezentációja

Az A[s..t ] egydimenziós tömb leképezése:

as as+1 at

K

︸ ︷︷ ︸l

• A tároláshoz szükséges tárterület mérete: ` · (t − s + 1)bájt, ahol ` az egy adatelem tárolásához szükségestárhely mérete.

• Ha ismerjük a tárterület kezdocímét (K ), akkor akövetkezo címfüggvény segítségével bármely elem tárbelicíme meghatározható:

az i indexu elem címe = K + ` · (i − s)

Page 48: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.35

Tömbök folytonos reprezentációja

Az A[s..t ] egydimenziós tömb leképezése:

as as+1 at

K

︸ ︷︷ ︸l

• A tároláshoz szükséges tárterület mérete: ` · (t − s + 1)bájt, ahol ` az egy adatelem tárolásához szükségestárhely mérete.

• Ha ismerjük a tárterület kezdocímét (K ), akkor akövetkezo címfüggvény segítségével bármely elem tárbelicíme meghatározható:

az i indexu elem címe = K + ` · (i − s)

Page 49: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.36

Tömbök folytonos reprezentációja

Az A[s..n, t ..m] kétdimenziós tömb leképezése történhetsorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan.

K

as,t as,t+1 as,m

an,t an,t+1 an,m

︸︷︷︸l

Page 50: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.36

Tömbök folytonos reprezentációja

Az A[s..n, t ..m] kétdimenziós tömb leképezése történhetsorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan.

K

as,t as,t+1 as,m

an,t an,t+1 an,m

︸︷︷︸l

as,t as,t+1 as,m

Page 51: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.36

Tömbök folytonos reprezentációja

Az A[s..n, t ..m] kétdimenziós tömb leképezése történhetsorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan.

K

as,t as,t+1 as,m

an,t an,t+1 an,m

︸︷︷︸l

as,t as,t+1 as,m as+1,t

Page 52: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.36

Tömbök folytonos reprezentációja

Az A[s..n, t ..m] kétdimenziós tömb leképezése történhetsorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan.

K

as,t as,t+1 as,m

an,t an,t+1 an,m

︸︷︷︸l

as,t as,t+1 as,m as+1,t an,t an,t+1 an,m

Page 53: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.36

Tömbök folytonos reprezentációja

Az A[s..n, t ..m] kétdimenziós tömb leképezése történhetsorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan.

K

as,t as,t+1 as,m

an,t an,t+1 an,m

︸︷︷︸l

as,t as,t+1 as,m as+1,t an,t an,t+1 an,m

Sorfolytonos tárolás esetén ha ismerjük a tárterület kezdocímét(K ), akkor a következo címfüggvény segítségével bármely elemtárbeli címe meghatározható:

az (i , j) indexu elem címe = K + ` · (i−s) · (m− t +1)+ ` · (j− t)

Page 54: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.37

Tömbök folytonos reprezentációja

Az A[s1..n1, s2..n2, . . . , sd ..nd ] d dimenziós tömbsorfolytonos leképezése esetén a címfüggvény a következo(K továbbra is a tárterület kezdocímét, ` pedig az egyadatelem tárolásához szükséges tárhely méretét jelöli):

az (x1, x2, . . . , xd ) indexu elem címe =

= K + ` ·d∑

i=1

(xi − si) ·d∏

j=i+1

(nj − sj + 1)

d∏

j=d+1

(nj − sj + 1) ≡ 1

Page 55: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.38

Tömbök folytonos reprezentációja

Az A[s1..n1, s2..n2, . . . , sd ..nd ] d dimenziós tömboszlopfolytonos leképezése esetén a címfüggvény a következo(K továbbra is a tárterület kezdocímét, ` pedig az egyadatelem tárolásához szükséges tárhely méretét jelöli):

az (x1, x2, . . . , xd ) indexu elem címe =

= K + ` ·d∑

i=1

(xi − si) ·i−1∏j=1

(nj − sj + 1)

0∏

j=1

(nj − sj + 1) ≡ 1

Page 56: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.39

Háromszögmátrixok

A háromszögmátrixok négyzetes (kvadratikus) mátrixok.

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

a2,1 a2,2 a2,3 a2,n

a3,1 a3,2 a3,3 a3,n

an,1 an,2 an,3 an,n

Kétfajta háromszögmátrixot szoktunk megkülönböztetni:• a felsoháromszög-mátrixot és• az alsóháromszög-mátrixot.

Page 57: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.39

Háromszögmátrixok

A háromszögmátrixok négyzetes (kvadratikus) mátrixok.

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

Az olyan négyzetes mátrixot, amelynek foátlója alatt csupa 0elem található, felsoháromszög-mátrixnak nevezzük.

Page 58: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.39

Háromszögmátrixok

A háromszögmátrixok négyzetes (kvadratikus) mátrixok.

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 0 0 0

a2,1 a2,2 0 0

a3,1 a3,2 a3,3 0

an,1 an,2 an,3 an,n

Ha a négyzetes mátrix foátlója fölött lévo elemek mindegyiké-nek értéke 0, akkor alsóháromszög-mátrixról beszélünk.

Page 59: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.40

Háromszögmátrixok folytonos reprezentációja

A négyzetes mátrixokkal szemben, ahol az értékes elemekszáma n2, a háromszögmátrixoknál az értékes elemek számacsupán

n · (n + 1)2

.

Az értékes elemeket emiatt – sor- vagy oszlopfolytonosan –egy n·(n+1)

2 elemu V vektorra szoktuk leképezni.

Page 60: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

V :

(n−1)·n2 + n

Page 61: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

a1,1

V :

(n−1)·n2 + n

Page 62: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

a1,1 a1,2 a2,2

V :

(n−1)·n2 + n

Page 63: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

a1,1 a1,2 a2,2 a1,3 a2,3 a3,3

V :

(n−1)·n2 + n

Page 64: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

a1,1 a1,2 a2,2 a1,3 a2,3 a3,3 · · · · · · · · · a1,n a2,n a3,n · · · an,n

V :

(n−1)·n2 + n

Page 65: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

a1,1 a1,2 a2,2 a1,3 a2,3 a3,3 · · · · · · · · · a1,n a2,n a3,n · · · an,n

V :

(n−1)·n2 + n

Page 66: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

a1,1 a1,2 a2,2 a1,3 a2,3 a3,3 · · · · · · · · · a1,n a2,n a3,n · · · an,n

V :

· · · · · ·(n−1)·n

2 + n

Page 67: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.41

Felsoháromszög-mátrixok folytonos reprezentációja

A felsoháromszög-mátrix értékes elemeit (a foátló elemeit és afölötte elhelyezkedo elemeket) oszlopfolytonosan célszeruleképezni egy n·(n+1)

2 elemu V vektorra:

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

0 a2,2 a2,3 a2,n

0 0 a3,3 a3,n

0 0 0 an,n

V : a1,1 a1,2 a2,2 a1,3 a2,3 a3,3 · · · · · · · · · a1,n a2,n a3,n · · · an,n

1. 2. 3. 4. 5. 6. (n−1)·n2 + 1 (n−1)·n

2 + n

Page 68: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.42

Háromszög-mátrixok folytonos reprezentációja

Felsoháromszög mátrixok esetén ennek megfeleloen

• A V vektorból a következo képlet segítségével kaphatjukvissza az eredeti felsoháromszög-mátrix (i , j) indexuelemének az értékét:

ai,j =

{0, ha i > jVt , egyébként, ahol t = j·(j−1)

2 + i

Alsóháromszög-mátrixok esetén viszont sorfolytonosleképezést célszeru használni.

• Ennek megfeleloen, a V vektorból a következo képletsegítségével kaphatjuk vissza az eredetialsóháromszög-mátrix (i , j) indexu elemének az értékét:

ai,j =

{0, ha i < jVt , egyébként, ahol t = i·(i−1)

2 + j

Page 69: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.42

Háromszög-mátrixok folytonos reprezentációja

Felsoháromszög mátrixok esetén ennek megfeleloen

• A V vektorból a következo képlet segítségével kaphatjukvissza az eredeti felsoháromszög-mátrix (i , j) indexuelemének az értékét:

ai,j =

{0, ha i > jVt , egyébként, ahol t = j·(j−1)

2 + i

Alsóháromszög-mátrixok esetén viszont sorfolytonosleképezést célszeru használni.

• Ennek megfeleloen, a V vektorból a következo képletsegítségével kaphatjuk vissza az eredetialsóháromszög-mátrix (i , j) indexu elemének az értékét:

ai,j =

{0, ha i < jVt , egyébként, ahol t = i·(i−1)

2 + j

Page 70: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.42

Háromszög-mátrixok folytonos reprezentációja

Felsoháromszög mátrixok esetén ennek megfeleloen

• A V vektorból a következo képlet segítségével kaphatjukvissza az eredeti felsoháromszög-mátrix (i , j) indexuelemének az értékét:

ai,j =

{0, ha i > jVt , egyébként, ahol t = j·(j−1)

2 + i

Alsóháromszög-mátrixok esetén viszont sorfolytonosleképezést célszeru használni.

• Ennek megfeleloen, a V vektorból a következo képletsegítségével kaphatjuk vissza az eredetialsóháromszög-mátrix (i , j) indexu elemének az értékét:

ai,j =

{0, ha i < jVt , egyébként, ahol t = i·(i−1)

2 + j

Page 71: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.43

Szimmetrikus mátrixok

A szimmetrikus mátrixok négyzetes (kvadratikus) mátrixok.

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

a2,1 a2,2 a2,3 a2,n

a3,1 a3,2 a3,3 a3,n

an,1 an,2 an,3 an,n

• Melyekre teljesül azai,j = aj,i

egyenloség bármely i-re és j-re (1 ≤ i , j ≤ n).

Page 72: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.44

Szimmetrikus mátrixok folytonos reprezentációjaSzimmetrikus mátrixok esetén

• vagy a felso háromszöget képezzük le oszlopfolytonosan,• vagy pedig az alsóháromszöget sorfolytonosan• A V vektorból a következo képlet segítségével kaphatjuk

vissza az eredeti szimmetrikus mátrix (i , j) indexuelemének az értékét:

ai,j = Vt , ahol t =

{j·(j−1)

2 + i , ha i ≤ ji·(i−1)

2 + j egyébként,

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

a2,1 a2,2 a2,3 a2,n

a3,1 a3,2 a3,3 a3,n

an,1 an,2 an,3 an,n

Page 73: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.44

Szimmetrikus mátrixok folytonos reprezentációjaSzimmetrikus mátrixok esetén

• vagy a felso háromszöget képezzük le oszlopfolytonosan,• vagy pedig az alsóháromszöget sorfolytonosan• A V vektorból a következo képlet segítségével kaphatjuk

vissza az eredeti szimmetrikus mátrix (i , j) indexuelemének az értékét:

ai,j = Vt , ahol t =u · (u − 1)

2+v ; u = MAX (i , j) és v = MIN(i , j)

......

...

. . .

. . .

. . .

. . .

. . .

...

a1,1 a1,2 a1,3 a1,n

a2,1 a2,2 a2,3 a2,n

a3,1 a3,2 a3,3 a3,n

an,1 an,2 an,3 an,n

Page 74: Szathmáry László Halász Gábor Adatszerkezetekkel ...halasz/Adatszerk-PTI-2017/eloadas/03_reprezentacio.pdf · Szathmáry László Halász Gábor Absztrakt adatszerkezetek Rendszerelmélet

Adatszerkezetekkelkapcsolatos

alapfogalmak

Kósa MárkPánovics János

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

AbsztraktadatszerkezetekRendszerelmélet

Absztrakció, modellalkotás

Absztrakt adatszerkezetek

Ábrázolási módok

Folytonos (vektorszeru)tárolás

Szétszórt (láncolt) tárolás

Reprezentáció ésimplementáció

Algoritmusok

Algoritmusokmegadásának módjai

Algoritmusok építoelemei

Gazdálkodás a memóriával

Struktúra nélküliadatszerkezetekA halmaz

A multihalmaz

AsszociatívadatszerkezetekA tömb

Háromszögmátrixok

Dinamikus tömb

3.45

Dinamikus tömb

Általában egydimenziós tömböt értünk alatta, ekkor másszavakkal (dinamikus) vektornak is nevezzük.

• A dinamikus tömb mérete szukebb értelemben afeldolgozás során tetszolegesen (dinamikusan) változik.Ebben az esetben gyakorlatilag egy szekvenciális listaadatszerkezetet kapunk (lásd késobb).

• Tágabb értelemben fizikailag továbbra is statikus tömbrolbeszélünk, a logikai adatszerkezet létrehozáskor megadottelemszámát viszont késobb bizonyos határok között – alefoglalt tárterület méretétol függoen – módosíthatjuk.Ilyenkor a tömb végén lehetnek adatelemek által nemhasznált, de a létrehozáskor lefoglalt tárhelyek.

• Bovítés a dinamikus tömb tetszoleges helyénvégrehajtható.

• Fizikai törlés bármely elem esetén értelmezheto.• A dinamikus tömb egyéb muveletei megegyeznek a

(statikus) tömb muveleteivel.