szathmáry lászló halász gábor adatszerkezetekkel...
Post on 25-Jan-2020
6 Views
Preview:
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