3. előadás. alapfogalmak. Reprezentáció és implementáció, algoritmusok, a halmaz és a multihalmaz, tömbök.

Hasonló dokumentumok
Adatszerkezetek 1. előadás

Struktúra nélküli adatszerkezetek

Egyirányban láncolt lista

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

9. előadás. A táblázat. A táblázatról általában, soros, önátrendező, rendezett és kulcstranszformációs táblázat

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Algoritmusok és adatszerkezetek I. 1. előadás

Adatszerkezetek és algoritmusok

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

3. TÖMBÖK A tömb absztrakt adattípus Legyen T az E alaptípus feletti k ( 1) dimenziós tömb típus. Vezessük be az I I1

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Programozás alapjai II. (7. ea) C++

Amortizációs költségelemzés

Érdekes informatika feladatok

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.

Táblázatok fontosabb műveletei 1

Algoritmizálás, adatmodellezés 1. előadás

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

22. GRÁFOK ÁBRÁZOLÁSA

10. előadás Speciális többágú fák

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

A félév során előkerülő témakörök

Programozási segédlet

1.előadás Tornai Kálmán

Programozás II. előadás

Haladó rendezések. PPT 2007/2008 tavasz.

Felvételi tematika INFORMATIKA

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

1. előadás. számításokban. Adatszerkezetek és algoritmusok előadás február 12. Kósa Márk, Pánovics János, Szathmáry László és Halász Gábor

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Adatszerkezetek 1. Dr. Iványi Péter

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek I. 1. előadás

Láncolt listák Témakörök. Lista alapfogalmak

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3

Elemi adatszerkezetek

Egyszerű programozási tételek

I. VEKTOROK, MÁTRIXOK

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

7. előadás. Gyorsrendezés, rendezés lineáris lépésszámmal. Adatszerkezetek és algoritmusok előadás március 6.

Algoritmuselmélet 1. előadás

Adatbázis rendszerek Gy: Algoritmusok C-ben

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Algoritmizálás és adatmodellezés 2. előadás

hatására hátra lép x egységgel a toll

Rendezések. Összehasonlító rendezések

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Láncolt listák. PPT 2007/2008 tavasz.

Adatszerkezetek 7a. Dr. IványiPéter

Algoritmizálás és adatmodellezés tanítása 6. előadás

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Algoritmuselmélet 2. előadás

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Bevezetés a programozásba. 5. Előadás: Tömbök

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

INFORMATIKA javítókulcs 2016

Tuesday, March 6, 12. Hasító táblázatok

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Gyakorló feladatok ZH-ra

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Algoritmuselmélet 1. előadás

6. LISTÁK ábra. A lista absztrakt adatszerkezet (ADS)

Programozás I gyakorlat

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

2018, Diszkrét matematika

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Algoritmusok vektorokkal keresések 1

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

8. gyakorlat Pointerek, dinamikus memóriakezelés

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Számláló rendezés. Példa

6. előadás. Kiegyensúlyozottság, AVL-fa, piros-fekete fa. Adatszerkezetek és algoritmusok előadás március 6.

Algoritmusok bonyolultsága

Algoritmusok és adatszerkezetek I. 4. előadás

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

BASH script programozás II. Vezérlési szerkezetek

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Adatbáziskezelés. Indexek, normalizálás NZS 1

Vektorok, mátrixok, lineáris egyenletrendszerek

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Bevezetés az informatikába

Átírás:

3. előadás, algoritmusok, a halmaz és a multihalmaz, tömbök. Adatszerkezetek és algoritmusok előadás 2020. február 25. Szétszórt (láncolt) építőelemei,, és Debreceni Egyetem Informatikai Kar

Általános tudnivalók Ajá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 művészete 1. (Alapvető algoritmusok), Műszaki Könyvkiadó, 1994. Donald E. Knuth: A számítógépprogramozás művészete 3. (Keresés és rendezés), Műszaki Könyvkiadó, 1994. Seymour Lipschutz: Adatszerkezetek, Panem-McGraw-Hill, Budapest, 1993. Rónyai Lajos, Ivanyos Gábor, Szabó Réka:, 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 Szétszórt (láncolt) építőelemei

Beszúró rendezés procedure BESZÚRÓ-RENDEZÉS(A) 1 for j 2 to méret(a) do 2 kulcs A[j] 3 i j 1 4 while i 1 és A[i] > kulcs do 5 A[i + 1] A[i] 6 i i 1 7 end while 8 A[i + 1] kulcs 9 end for end procedure Vegyük észre: a while ciklus lineáris keresést használ kulcs helyének meghatározására az A elejében. Lehetne ezt bináris keresésre cserélni? Szétszórt (láncolt) építőelemei

Rendszer Elemek: egyedek Tulajdonságok (statikus rész) Viselkedés (dinamikus rész) Kölcsönhatás Komplex rendszer Nyílt rendszer Dinamikus rendszer Szétszórt (láncolt) építőelemei

Absztrakció, modellezés Modellalkotás, absztrakció Adatmodell, eljárásmodell Adat, információ Az adatelemek lehetnek egyszerűek (atomiak) és összetettek. Minden adatelem rendelkezik valamilyen értékkel. Az adatelemek között jól meghatározott kapcsolatrendszer van. Az adatelemek és a közöttük lévő kapcsolatok definiálják a logikai (absztrakt) adatszerkezetet. Független hardvertől, szoftvertől. Fizikai adatszerkezet (társzerkezet): adatszerkezet az operatív tárban vagy periférián (háttértáron). Szétszórt (láncolt) építőelemei

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 az adatszerkezetben? Egy homogén adatszerkezet lehet struktúra nélküli asszociatív szekvenciális hierarchikus hálós A heterogén et nem csoportosítjuk ilyen szempont alapján. Szétszórt (láncolt) építőelemei

kel végezhető műveletek (Alapvető algoritmusok) 1 Létrehozás 2 Módosítás bővítés törlés (fizikai, logikai) csere 3 Rendezés 4 Keresés 5 Elérés 6 Bejárás 7 Feldolgozás Szétszórt (láncolt) építőelemei

Ábrázolási (i) módok Ábrázolás alatt az adatszerkezet memóriában való megjelenési formáját értjük. Ez minden adatszerkezet esetén lehet folytonos (vektorszerű) 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 egy adatelem értékét tárolja, illetve szerkezetleíró információkat is hordozhat. Szétszórt (láncolt) építőelemei

Egy tárhelyen egy adatelem értékét tároljuk. A tárhelyek a memóriában folytonos, összefüggő tárterületet alkotnak, a tárhelyek mérete azonos. Előnye: közvetlen elérés, a kezdőcím és az egy adatelemhez tartozó tárhely méretének ismeretében a csere művelete könnyen megvalósítható hatékony rendező algoritmusok (pl. gyorsrendezés) hatékony kereső algoritmusok (pl. bináris keresés) Hátránya: nem segíti a bővítés és a fizikai törlés műveletének végrehajtását Szétszórt (láncolt) építőelemei

Szétszórt (láncolt) Egy tárhelyen egy adatelem értékét (adatrész) és legalább egy mutató értékét (mutatórész) tároljuk. A mutatók értékei memóriacímek lehetnek, amelyek megmondják az adatelem rákövetkezőinek tárbeli helyét. A tárhelyek mérete nem szükségképpen azonos, elhelyezkedésük a memóriában tetszőleges. tárhely {}}{ } {{ } adatrész } {{ } mutatórész A szétszórt ábrázolási mód alapvető fajtái: egyirányban láncolt lista cirkuláris lista kétirányban láncolt lista multilista Szétszórt (láncolt) építőelemei

Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. fej tárhely { (listaelem) }} { }{{}}{{} adatrész mutatórész nil A láncolt lista első elemének tárbeli címét egy mutató, a fejmutató 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 az egyirányban láncolt lista üres Szétszórt (láncolt) építőelemei

Cirkuláris lista Hasonló az egyirányban láncolt listához, ám itt egyik listaelem mutatórésze sem tartalmazhatja a NIL értéket: az utolsó listaelem mutatórészébe az első listaelem címe kerül. fej tárhely { (listaelem) }} { }{{}}{{} adatrész mutatórész A cirkuláris lista első elemének tárbeli címét most is egy mutató, a fejmutató tárolja. Amennyiben a fejmutató a NIL értéket tartalmazza, akkor a cirkuláris lista üres. Szétszórt (láncolt) építőelemei

Kétirányban láncolt lista Hasonló az egyirányban láncolt listához, ám itt minden listaelem mutatórésze két részből áll: az egyik mutató az adott listaelemet megelőző, a másik az adott listaelemet követő listaelemre mutat. egyik fej adatrész mutatórész {}}{{}}{ nil } {{ } tárhely (listaelem) másik fej nil Két lánc alakul ki, két fejmutatóval. A fejmutatók a kétirányban láncolt lista első és utolsó elemére mutatnak. Ha mindkét fejmutató értéke NIL, akkor a kétirányban láncolt listának nincs egyetlen eleme sem, azaz üres. (És mi a helyzet, ha csak az egyikfej mutató értéke NIL?) Szétszórt (láncolt) építőelemei

Kétirányban láncolt lista Hasonló az egyirányban láncolt listához, ám itt minden listaelem mutatórésze két részből áll: az egyik mutató az adott listaelemet megelőző, a másik az adott listaelemet követő listaelemre mutat. egyik fej adatrész mutatórész {}}{{}}{ nil } {{ } tárhely (listaelem) másik fej nil Két lánc alakul ki, két fejmutatóval. A fejmutatók a kétirányban láncolt lista első és utolsó elemére mutatnak. Ha mindkét fejmutató értéke NIL, akkor a kétirányban láncolt listának nincs egyetlen eleme sem, azaz üres. (És mi a helyzet, ha csak az egyikfej mutató értéke NIL?) Szétszórt (láncolt) építőelemei

Multilista (1) Ebben a változatban a listaelemek adatrésze összetett. Az adatrész minden komponensére fölépíthető egy egyirányban láncolt lista. betű A 54 R 79 } {{ } adatrész szám G tárhely { (listaelem) }} { nil 18 nil } {{ } mutatórész Annyi lánc alakítható ki, ahány komponensből áll az adatrész. Minden lista külön fejmutatóval rendelkezik, és minden listaelem mindegyik láncban előfordul egyszer. Szétszórt (láncolt) építőelemei

Multilista (2) Ebben a változatban a listaelemek adatrésze általában összetett. Az adatrész valamely komponensének értékeit figyelembe véve építjük föl az egyirányban láncolt listákat. Adamkó 1978 Espák 1978 nil 1975 1977 Jeszenszky 1975 Kollár 1977 nil 1978 Szétszórt (láncolt) Kósa 1975 Pánovics 1975 nil Annyi lánc alakul ki, ahány különböző értéket az adatrész adott komponense felvesz. Minden lista külön fejmutatóval rendelkezik, és minden listaelem csak egy láncban szerepel, pontosan egyszer. építőelemei

Multilista (3) Ebben a változatban a listaelemek tartalmaznak egy-egy fejmutatót is, melyek újabb láncolt listák első elemeire mutatnak. A B D nil nil Béla nil Szétszórt (láncolt) fej Aladár Anna nil építőelemei Az allisták szerkezete eltérhet a főlista szerkezetétől.

grafikus (képi) megjelenítésénél használt jelölések: : adatelem : kapcsolat két adatelem között Amikor egy absztrakt adatszerkezethez megadjuk a i módját és a leképezését, akkor megadjuk az absztrakt adatszerkezet reprezentációját. Szétszórt (láncolt) absztrakt adatszerkezet leképezés ábrázolás Ha a reprezentáció mellé megadjuk a műveletek megvalósítását (algoritmusok) is, akkor megadjuk az absztrakt adatszerkezet ját. építőelemei

Algoritmus fogalma Olyan eljárás (elemi lépések sorozata), melynek során a következők teljesülnek: jól meghatározott objektumokon jól meghatározott műveleteket végzünk minden lépés elvégzése után egyértelműen definiált helyzet áll elő véges sok lépés után végetér nem csak egy feladatra, hanem egy feladatosztály tagjaira érvényes Szétszórt (láncolt) építőelemei

at a következő 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 Szétszórt (láncolt) építőelemei

Példa folyamatábrával START be: N összeg 0 i 1 Szétszórt (láncolt) összeg összeg + i i i + 1 igen i N nem ki: összeg STOP építőelemei

építőelemei 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észfeladatok megoldásába) Szétszórt (láncolt) építőelemei

Szabad helyek kezelése Adatszerkezetek szétszórt ábrázolása esetén Az ához memória kell, ami véges. A szabad 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 összegyűjtése a lefoglalt tárterület végén (időigényes) szemétgyűjtö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öző méretű tárhelyek) szemétgyűjtögetés (garbage collection) a szabad helyek láncolásával a szabad helyek nyilvántartása bitvektor segítségével Szétszórt (láncolt) építőelemei

Halmaz és multihalmaz és a multihalmaz struktúra nélküli, homogén és dinamikus. Szétszórt (láncolt) minden eleme különböző. ban előfordulhatnak azonos elemek is. Mindkét adatszerkezetre igaz, hogy az adatszerkezetben lévő elemek között nincs kapcsolat (ezért struktúra nélküli ). építőelemei

adatszerkezet adatszerkezet a matematikai halmaz fogalom megjelenése az szintjén. Mindig véges ennyiben nem felel meg teljesen a matematikai halmaz fogalmának. alapműveletei eleme, : megmondja, hogy egy adatelem benne van-e a halmazban 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 Szétszórt (láncolt) építőelemei

adatszerkezet Az kel végezhető hagyományos műveletek megvaló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 Bőví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 alapműveleteinek a segítségével Szétszórt (láncolt) építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. K Z A R T D E S Szétszórt (láncolt) A Z építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. K Z A R T D E S Szétszórt (láncolt) 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 építőelemei lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy egy bit méretű tárterületet.

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. K Z A R T D E S Szétszórt (láncolt) 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 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 építőelemei lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy egy bit méretű tárterületet. Az adott értékű adatelemhez tartozó bit fogja jelezni, hogy az adatelem benne van-e a halmazban (1) vagy sem (0).

adatszerkezet ja Folytonos reprezentáció esetén a halmaz alapműveleteinek megvalósítása visszavezethető egyszerű bitműveletekre: Unióképzés x A B x A x B Metszetképzés Szétszórt (láncolt) Különbségképzés x A B x A x B x A \ B x A x / B építőelemei

adatszerkezet abban különbözik a halmaztól, hogy megengedi az adatelemek ismétlődését, benne több azonos értékű elem is előfordulhat. alapműveletei eleme, : megmondja, hogy egy adatelem benne van-e a multihalmazban 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 kel végezhető hagyományos műveletek megvalósítása hasonló a halmazokéhoz (lásd ott). feldolgozása a multihalmaz alapműveleteinek a segítségével történik. Szétszórt (láncolt) építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) építőelemei lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk.

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 0 0 1 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 0 0 1 4 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 0 0 1 4 0 0 0 0 0 2 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1 1 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 2 0 0 1 4 0 0 0 0 0 2 0 0 0 0 0 0 1 1 2 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet reprezentációja Klasszikus reprezentációja folytonosan, karakterisztikus függvény segítségével történik. R E K Z A D A T S Z E E T E K Szétszórt (láncolt) 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 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 lehetséges elemeit sorba rendezzük, s mindegyikhez hozzárendelünk egy tárterületet. általában 1 bájtot A tárhelyeken az adott értékű elemek előfordulásainak számát tároljuk. építőelemei

adatszerkezet ja Folytonos reprezentáció esetén a multihalmaz alapműveleteinek megvalósítása visszavezethető egyszerű aritmetikai (számtani) műveletekre: 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} Szétszórt (láncolt) építőelemei Különbségképzés x A \ B-ben = max{0, x A-ban x B-ben}

Az asszociatív olyan, amelyekből bizonyos adott feltételeknek eleget tevő részhalmazokat választhatunk ki. A legfontosabb művelet tehát a részhalmaz kiválasztásának, a részhalmazképzésnek a művelete. Szétszórt (láncolt) építőelemei A részhalmazok ahogy az ábrán is látható átfedhetik egymást. Egyes esetekben a részhalmazok egyeleműek, máskor akárhány eleműek lehetnek.

adatszerkezet Statikus, homogén és asszociatív adatszerkezet. A felépítése definiálja: benne az adatelemek egymáshoz viszonyított helyzete a lényeges. bármelyik eleme egész számok sorozatán keresztül érhető el. Minden adatelemhez különböző egészszám-sorozat tartozik, így az asszociativitást biztosító részhalmazok egyeleműek és diszjunktak. A számsorozat számait indexeknek nevezzük, segítségükkel tudjuk az adatelemet kiválasztani. Az indexek darabszámát a tömb dimenziójának hívjuk. Ha mást nem mondunk, a tömb elemeinek az indexelése mindegyik dimenzióban 1-től indul. Szétszórt (láncolt) építőelemei

adatszerkezet A legegyszerűbb eset: egydimenziós tömb (vektor 1 ). 1. 2. 3. 4. 5. 6. 7. 8. Kétdimenziós tömb (mátrix). sor Szétszórt (láncolt) oszlop Léteznek magasabb dimenziójú tömbök is. A dimenziók száma tetszőlegesen nagy lehet, de mindig véges. 1 A vektor szó minden egyéb jelző nélküli használatakor statikus, egydimenziós tömbre gondolunk. építőelemei

Tömbökkel végezhető műveletek Létrehozás: rögzítjük a dimenziók számát és az indextartományokat. Ezzel egyben meghatározzuk a tömb elemszámát is. A szerkezet kialakításával párhuzamosan elemeket is elhelyezhetünk a tömbben. Bővítés: nincs, ugyanis a tömb statikus. Csere: bármely (létező) 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 értelmezhető, ott bármelyik rendezési algoritmus alkalmazható. Keresés: reprezentációfüggő művelet, egydimenziós tömbök esetén nagy a jelentősége, ott bármelyik keresési algoritmus alkalmazható. Bejárás: többdimenziós tömbök esetén reprezentációfüggő művelet (lásd később). A feldolgozás alapja a közvetlen elérés. Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..t] egydimenziós tömb leképezése: a s a s+1 a t K A hoz szükséges tárterület mérete: l (t s + 1) bájt, ahol l az egy adatelem ához szükséges tárhely mérete. Ha ismerjük a tárterület kezdőcímét (K ), akkor a következő címfüggvény segítségével bármely elem tárbeli címe meghatározható: az i indexű elem címe = K + l (i s) Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..t] egydimenziós tömb leképezése: a s a s+1 a t K }{{} l A hoz szükséges tárterület mérete: l (t s + 1) bájt, ahol l az egy adatelem ához szükséges tárhely mérete. Ha ismerjük a tárterület kezdőcímét (K ), akkor a következő címfüggvény segítségével bármely elem tárbeli címe meghatározható: az i indexű elem címe = K + l (i s) Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..t] egydimenziós tömb leképezése: a s a s+1 a t K }{{} l A hoz szükséges tárterület mérete: l (t s + 1) bájt, ahol l az egy adatelem ához szükséges tárhely mérete. Ha ismerjük a tárterület kezdőcímét (K ), akkor a következő címfüggvény segítségével bármely elem tárbeli címe meghatározható: az i indexű elem címe = K + l (i s) Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..n, t..m] kétdimenziós tömb leképezése történhet sorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan. a s,t a s,t+1 a s,m K a n,t a n,t+1 a n,m Szétszórt (láncolt) }{{} l építőelemei

Tömbök folytonos reprezentációja Az A[s..n, t..m] kétdimenziós tömb leképezése történhet sorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan. a s,t a s,t+1 a s,m K a s,t a s,t+1 a s,m }{{} l a n,t a n,t+1 a n,m Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..n, t..m] kétdimenziós tömb leképezése történhet sorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan. a s,t a s,t+1 a s,m K a s,t a s,t+1 a s,m a s+1,t }{{} l a n,t a n,t+1 a n,m Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..n, t..m] kétdimenziós tömb leképezése történhet sorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan. a s,t a s,t+1 a s,m K a n,t a n,t+1 a n,m a s,t a s,t+1 a s,m a s+1,t a n,t a n,t+1 a n,m }{{} l Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s..n, t..m] kétdimenziós tömb leképezése történhet sorfolytonosan (lásd az ábrán) vagy oszlopfolytonosan. a s,t a s,t+1 a s,m K a n,t a n,t+1 a n,m Szétszórt (láncolt) a s,t a s,t+1 a s,m a s+1,t a n,t a n,t+1 a n,m }{{} l Sorfolytonos esetén ha ismerjük a tárterület kezdőcímét (K ), akkor a következő címfüggvény segítségével bármely elem tárbeli címe meghatározható: az (i, j) indexű elem címe = K + l (i s) (m t + 1) + l (j t) építőelemei

Tömbök folytonos reprezentációja Az A[s 1..n 1, s 2..n 2,..., s d..n d ] d dimenziós tömb sorfolytonos leképezése esetén a címfüggvény a következő (K továbbra is a tárterület kezdőcímét, l pedig az egy adatelem ához szükséges tárhely méretét jelöli): az (x 1, x 2,..., x d ) indexű elem címe = d d = K + l (x i s i ) (n j s j + 1) i=1 j=i+1 d j=d+1 (n j s j + 1) 1 Szétszórt (láncolt) építőelemei

Tömbök folytonos reprezentációja Az A[s 1..n 1, s 2..n 2,..., s d..n d ] d dimenziós tömb oszlopfolytonos leképezése esetén a címfüggvény a következő (K továbbra is a tárterület kezdőcímét, l pedig az egy adatelem ához szükséges tárhely méretét jelöli): az (x 1, x 2,..., x d ) indexű elem címe = d i 1 = K + l (x i s i ) (n j s j + 1) i=1 j=1 0 (n j s j + 1) 1 j=1 Szétszórt (láncolt) építőelemei

A háromszögmátrixok négyzetes (kvadratikus) mátrixok. a 1,1 a 1,2 a 1,3... a 1,n a 2,1 a 2,2 a 2,3... a 2,n a 3,1 a 3,2 a 3,3... a 3,n...... a n,1 a n,2 a n,3... a n,n Kétfajta háromszögmátrixot szoktunk megkülönböztetni: a felsőháromszög-mátrixot és az alsóháromszög-mátrixot.. Szétszórt (láncolt) építőelemei

A háromszögmátrixok négyzetes (kvadratikus) mátrixok. a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... Szétszórt (láncolt) 0 0 0... a n,n építőelemei Az olyan négyzetes mátrixot, amelynek főátlója alatt csupa 0 elem található, felsőháromszög-mátrixnak nevezzük.

A háromszögmátrixok négyzetes (kvadratikus) mátrixok. a 1,1 0 0... 0 a 2,1 a 2,2 0... 0 a 3,1 a 3,2 a 3,3... 0....... Szétszórt (láncolt) a n,1 a n,2 a n,3... a n,n építőelemei Ha a négyzetes mátrix főátlója fölött lévő elemek mindegyikének értéke 0, akkor alsóháromszög-mátrixról beszélünk.

folytonos reprezentációja Az általános négyzetes mátrixokkal szemben, ahol az értékes elemek száma n 2, a háromszögmátrixoknál az értékes elemek száma csupán n (n + 1). 2 Az értékes elemeket emiatt sor- vagy oszlopfolytonosan egy n (n+1) 2 elemű V vektorra szoktuk leképezni. Szétszórt (láncolt) építőelemei

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) építőelemei (n 1) n 2 + n V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) a 1,1 (n 1) n 2 + n építőelemei V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) a 1,1 a 1,2 a 2,2 (n 1) n 2 + n építőelemei V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) a 1,1 a 1,2 a 2,2 a 1,3 a 2,3 a 3,3 (n 1) n 2 + n építőelemei V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) építőelemei a 1,1 a 1,2 a 2,2 a 1,3 a 2,3 a 3,3 a 1,n a 2,n a 3,n a n,n (n 1) n 2 + n V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) építőelemei a 1,1 a 1,2 a 2,2 a 1,3 a 2,3 a 3,3 a 1,n a 2,n a 3,n a n,n (n 1) n 2 + n V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) építőelemei a 1,1 a 1,2 a 2,2 a 1,3 a 2,3 a 3,3 a 1,n a 2,n a 3,n a n,n (n 1) n 2 + n V :

Felsőháromszög-mátrixok folytonos reprezentációja A felsőháromszög-mátrix értékes elemeit (a főátló elemeit és a fölötte elhelyezkedő elemeket) oszlopfolytonosan célszerű leképezni egy n (n+1) 2 elemű V vektorra: a 1,1 a 1,2 a 1,3... a 1,n 0 a 2,2 a 2,3... a 2,n 0 0 a 3,3... a 3,n....... 0 0 0... a n,n Szétszórt (láncolt) építőelemei 1. 2. 3. 4. 5. 6. (n 1) n 2 + 1 (n 1) n 2 + n V : a 1,1 a 1,2 a 2,2 a 1,3 a 2,3 a 3,3 a 1,n a 2,n a 3,n a n,n

Háromszög-mátrixok folytonos reprezentációja Felsőháromszög mátrixok esetén ennek megfelelően A V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti felsőháromszög-mátrix (i, j) indexű elemének az értékét: { 0, ha i > j a i,j = V t, egyébként, ahol t = j (j 1) 2 + i Alsóháromszög-mátrixok esetén viszont sorfolytonos leképezést célszerű használni. Ennek megfelelően, a V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti alsóháromszög-mátrix (i, j) indexű elemének az értékét: { 0, ha i < j a i,j = V t, egyébként, ahol t = i (i 1) 2 + j Szétszórt (láncolt) építőelemei

Háromszög-mátrixok folytonos reprezentációja Felsőháromszög mátrixok esetén ennek megfelelően A V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti felsőháromszög-mátrix (i, j) indexű elemének az értékét: { 0, ha i > j a i,j = V t, egyébként, ahol t = j (j 1) 2 + i Alsóháromszög-mátrixok esetén viszont sorfolytonos leképezést célszerű használni. Ennek megfelelően, a V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti alsóháromszög-mátrix (i, j) indexű elemének az értékét: { 0, ha i < j a i,j = V t, egyébként, ahol t = i (i 1) 2 + j Szétszórt (láncolt) építőelemei

Háromszög-mátrixok folytonos reprezentációja Felsőháromszög mátrixok esetén ennek megfelelően A V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti felsőháromszög-mátrix (i, j) indexű elemének az értékét: { 0, ha i > j a i,j = V t, egyébként, ahol t = j (j 1) 2 + i Alsóháromszög-mátrixok esetén viszont sorfolytonos leképezést célszerű használni. Ennek megfelelően, a V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti alsóháromszög-mátrix (i, j) indexű elemének az értékét: { 0, ha i < j a i,j = V t, egyébként, ahol t = i (i 1) 2 + j Szétszórt (láncolt) építőelemei

Szimmetrikus mátrixok A szimmetrikus mátrixok négyzetes (kvadratikus) mátrixok. a 1,1 a 1,2 a 1,3... a 1,n a 2,1 a 2,2 a 2,3... a 2,n a 3,1 a 3,2 a 3,3... a 3,n....... a n,1 a n,2 a n,3... a n,n Szétszórt (láncolt) építőelemei Melyekre teljesül az a i,j = a j,i egyenlőség bármely i-re és j-re (1 i, j n).

Szimmetrikus mátrixok folytonos reprezentációja Szimmetrikus mátrixok esetén vagy a felső háromszöget képezzük le oszlopfolytonosan, vagy pedig az alsóháromszöget sorfolytonosan A V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti szimmetrikus mátrix (i, j) indexű elemének az értékét: a i,j = V t, ahol t = { j (j 1) 2 + i, ha i j i (i 1) 2 + j egyébként, a 1,1 a 1,2 a 1,3... a 1,n a 2,1 a 2,2 a 2,3... a 2,n Szétszórt (láncolt) építőelemei a 3,1 a 3,2 a 3,3... a 3,n....... a n,1 a n,2 a n,3... a n,n

Szimmetrikus mátrixok folytonos reprezentációja Szimmetrikus mátrixok esetén vagy a felső háromszöget képezzük le oszlopfolytonosan, vagy pedig az alsóháromszöget sorfolytonosan A V vektorból a következő képlet segítségével kaphatjuk vissza az eredeti szimmetrikus mátrix (i, j) indexű elemének az értékét: a i,j = V t, ahol t = u (u 1) + v; u = MAX(i, j) és v = MIN(i, j) 2 a 1,1 a 1,2 a 1,3... a 1,n a 2,1 a 2,2 a 2,3... a 2,n Szétszórt (láncolt) építőelemei a 3,1 a 3,2 a 3,3... a 3,n....... a n,1 a n,2 a n,3... a n,n

Általában egydimenziós tömböt értünk alatta, ekkor más szavakkal (dinamikus) vektornak is nevezzük. A dinamikus tömb mérete szűkebb értelemben a feldolgozás során tetszőlegesen (dinamikusan) változik. Ebben az esetben gyakorlatilag egy szekvenciális lista adatszerkezetet kapunk (lásd később). Tágabb értelemben fizikailag továbbra is statikus tömbről beszélünk, a logikai adatszerkezet létrehozáskor megadott elemszámát viszont később bizonyos határok között a lefoglalt tárterület méretétől függően módosíthatjuk. Ilyenkor a tömb végén lehetnek adatelemek által nem használt, de a létrehozáskor lefoglalt tárhelyek. Bővítés a dinamikus tömb tetszőleges helyén végrehajtható. Fizikai törlés bármely elem esetén értelmezhető. A dinamikus tömb egyéb műveletei megegyeznek a (statikus) tömb műveleteivel. Szétszórt (láncolt) építőelemei

A ritka mátrixok olyan (általában nagyméretű) mátrixok, amelyekben a legtöbb elem értéke ugyanaz (általában 0). Az ettől eltérő értékkel rendelkező elemeket ritka elemeknek nevezzük. 1 2 0 0 0 6 0 4 0 0 0 0 Szétszórt (láncolt) 0 0 0 0 0 0 építőelemei 0 0 0 0 0 0 0 0 0 0 0 2

folytonos reprezentációja Helytakarékossági okból a ritka mátrixnak csak az értékes elemeit (a ritka elemeket), valamint azok sor- és oszlopindexeit célszerű tárolni három vektorban, mégpedig a sorindexek, azon belül pedig az oszlopindexek szerint növekvő sorrendben. Ezt a módszert 3 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 Szétszórt (láncolt) építőelemei SOR = OSZLOP = ÉRTÉK = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2)

folytonos reprezentációja A 3 soros reprezentáció létrehozása Az algoritmus bemenete az A m n-es mátrix, kimenete: k, SOR, OSZLOP, ÉRTÉK. 1: procedure LÉTREHOZÁS(A) 2: k 0 3: for i 1 to m do 4: for j 1 to n do 5: if A[i, j] 0 then 6: k k + 1 7: SOR[k] i 8: OSZLOP[k] j 9: ÉRTÉK[k] A[i, j] 10: end if 11: end for 12: end for 13: end procedure Szétszórt (láncolt) építőelemei

folytonos reprezentációja Elérés a 3 soros reprezentációban Az algoritmus bemenete: SOR, OSZLOP, ÉRTÉK, i, j, kimenete a mátrix (i, j) indexű elemének az értéke. 1: function ELÉRÉS(SOR, OSZLOP, ÉRTÉK, i, j) 2: for l 1 to méret(sor) do 3: if SOR[l] = i then 4: if OSZLOP[l] = j then 5: return ÉRTÉK[l] 6: end if 7: if OSZLOP[l] > j then 8: return 0 9: end if 10: end if 11: if SOR[l] > i then 12: return 0 13: end if 14: end for 15: return 0 16: end function Szétszórt (láncolt) építőelemei

folytonos reprezentációja A 3 soros reprezentáció nem segíti a ritka mátrix oszlopfolytonos feldolgozását, ezért bevezethetünk egy negyedik vektort, amelynek az elemei az aktuális ritka elem oszlopában található következő ritka elem reprezentációbeli indexét adják meg. Ezt a módszert 4 soros reprezentációnak nevezzük: 1 2 3 4 5 6 1 2 3 4 5 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja A 3 soros reprezentáció nem segíti a ritka mátrix oszlopfolytonos feldolgozását, ezért bevezethetünk egy negyedik vektort, amelynek az elemei az aktuális ritka elem oszlopában található következő ritka elem reprezentációbeli indexét adják meg. Ezt a módszert 4 soros reprezentációnak nevezzük: 1 2 3 4 5 6 1 2 3 4 5 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja A 3 soros reprezentáció nem segíti a ritka mátrix oszlopfolytonos feldolgozását, ezért bevezethetünk egy negyedik vektort, amelynek az elemei az aktuális ritka elem oszlopában található következő ritka elem reprezentációbeli indexét adják meg. Ezt a módszert 4 soros reprezentációnak nevezzük: 1 2 3 4 5 6 1 2 3 4 5 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja A 3 soros reprezentáció nem segíti a ritka mátrix oszlopfolytonos feldolgozását, ezért bevezethetünk egy negyedik vektort, amelynek az elemei az aktuális ritka elem oszlopában található következő ritka elem reprezentációbeli indexét adják meg. Ezt a módszert 4 soros reprezentációnak nevezzük: 1 2 3 4 5 6 1 2 3 4 5 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja A 3 soros reprezentáció nem segíti a ritka mátrix oszlopfolytonos feldolgozását, ezért bevezethetünk egy negyedik vektort, amelynek az elemei az aktuális ritka elem oszlopában található következő ritka elem reprezentációbeli indexét adják meg. Ezt a módszert 4 soros reprezentációnak nevezzük: 1 2 3 4 5 6 1 2 3 4 5 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4, 0, 0 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4, 0, 0, 5) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4, 0, 0, 5) (1 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4, 0, 0, 5) (1, 2 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4, 0, 0, 5) (1, 2, 0, 0, 0 ) Szétszórt (láncolt) építőelemei

folytonos reprezentációja Ahhoz, hogy ne kelljen keresnünk az egyes sorok és oszlopok első ritka elemét, a 4 soros reprezentációt kiegészíthetjük még két vektorral, amelyeknek az elemei a megfelelő sor, illetve oszlop első ritka elemének a reprezentációbeli indexét adják meg. Ezt a módszert 4+2 soros reprezentációnak nevezzük: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = 1 2 3 4 5 (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0, 4, 5, 0, 0) (1, 4, 0, 0, 5) (1, 2, 0, 0, 0, 3) Szétszórt (láncolt) építőelemei

szétszórt reprezentációja A folytonos reprezentáció hátránya, hogy nem tudjuk előre, hány ritka elem van a mátrixban, így azt sem tudjuk, mekkora vektorokra lesz szükségünk. Megoldás: tároljuk a ritka elemeket és azok indexeit egy egyirányban láncolt listában sorindex, azon belül oszlopindex szerinti növekvő sorrendben! 1 1 1 1 2 3 4 5 6 1 2 2 Szétszórt (láncolt) 1 2 3 4 5 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 6 6 2 2 4 5 6 2 nil építőelemei

szétszórt reprezentációja A sor- és oszlopfolytonos feldolgozást egyaránt elősegíti, ha a ritka elemeket multilistában helyezzük el: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 1 2 2 1 6 6 2 2 4 5 6 2 Szétszórt (láncolt) építőelemei

szétszórt reprezentációja A sor- és oszlopfolytonos feldolgozást egyaránt elősegíti, ha a ritka elemeket multilistában helyezzük el: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 Szétszórt (láncolt) építőelemei 1 1 1 1 2 2 1 6 6 2 2 4 nil 5 6 2 nil nil

szétszórt reprezentációja A sor- és oszlopfolytonos feldolgozást egyaránt elősegíti, ha a ritka elemeket multilistában helyezzük el: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 Szétszórt (láncolt) építőelemei 1 1 1 nil 1 2 2 1 6 6 2 2 4 nil nil nil 5 6 2 nil nil

szétszórt reprezentációja A sor- és oszlopfolytonos feldolgozást egyaránt elősegíti, ha a ritka elemeket multilistában helyezzük el: 1 2 3 4 5 1 2 3 4 5 6 1 2 0 0 0 6 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 Szétszórt (láncolt) oszlop nil nil nil építőelemei sor nil nil 1 1 1 nil 1 2 2 1 6 6 nil 2 2 4 nil nil 5 6 2 nil nil