szathmáry lászló halász gábor adatszerkezetekkel...

Post on 25-Jan-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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?

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

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).

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.

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

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.

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

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

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

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.

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.

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.

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.

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.

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.

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

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

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

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)

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

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).

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

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

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

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.

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).

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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}

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.

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.

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.

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.

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)

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)

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)

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

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

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

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

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)

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

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

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.

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.

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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).

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

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

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.

top related