3. előadás. alapfogalmak. Reprezentáció és implementáció, algoritmusok, a halmaz és a multihalmaz, tömbök.
|
|
- Elvira Kocsisné
- 5 évvel ezelőtt
- Látták:
Átírás
1 3. előadás, algoritmusok, a halmaz és a multihalmaz, tömbök. Adatszerkezetek és algoritmusok előadás február 25. Szétszórt (láncolt) építőelemei,, és Debreceni Egyetem Informatikai Kar
2 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Új algoritmusok, Scolar Informatika, Donald E. Knuth: A számítógépprogramozás művészete 1. (Alapvető algoritmusok), Műszaki Könyvkiadó, Donald E. Knuth: A számítógépprogramozás művészete 3. (Keresés és rendezés), Műszaki Könyvkiadó, Seymour Lipschutz: Adatszerkezetek, Panem-McGraw-Hill, Budapest, Rónyai Lajos, Ivanyos Gábor, Szabó Réka:, Typotex, Budapest, 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: Szétszórt (láncolt) építőelemei
3 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
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 Szétszórt (láncolt) építőelemei
5 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
6 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
7 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
8 Á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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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 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
17 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.
18 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
19 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
20 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
21 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
22 é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
23 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
24 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
25 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
26 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
27 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
28 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.
29 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. Az adott értékű adatelemhez tartozó bit fogja jelezni, hogy az adatelem benne van-e a halmazban (1) vagy sem (0).
30 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
31 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
32 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.
33 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
34 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
35 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
36 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
37 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
38 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
39 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
40 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
41 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
42 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}
43 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.
44 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
45 adatszerkezet A legegyszerűbb eset: egydimenziós tömb (vektor 1 ) 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
46 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
47 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
48 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
49 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
50 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
51 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
52 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
53 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
54 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
55 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
56 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
57 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
58 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) 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.
59 A háromszögmátrixok négyzetes (kvadratikus) mátrixok. a 1, a 2,1 a 2, a 3,1 a 3,2 a 3, 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.
60 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
61 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 a n,n Szétszórt (láncolt) építőelemei (n 1) n 2 + n V :
62 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 a n,n Szétszórt (láncolt) a 1,1 (n 1) n 2 + n építőelemei V :
63 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 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 :
64 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 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 :
65 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 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 :
66 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 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 :
67 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 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 :
68 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 a n,n Szétszórt (láncolt) építőelemei (n 1) n (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
69 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
70 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
71 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
72 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).
73 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
74 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
75 Á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
76 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 Szétszórt (láncolt) építőelemei
77 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: Szétszórt (láncolt) építőelemei SOR = OSZLOP = ÉRTÉK = (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2)
78 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
79 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
80 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = (1, 1, 1, 2, 5) (1, 2, 6, 2, 6) (1, 2, 6, 4, 2) (0 ) Szétszórt (láncolt) építőelemei
81 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = (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
82 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = (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
83 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = (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
84 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = (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
85 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = (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
86 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = (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
87 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = (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
88 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = (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
89 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = (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
90 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = (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
91 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = (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
92 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: SOR = OSZLOP = ÉRTÉK = KÖVINDEX = S = O = (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
93 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! Szétszórt (láncolt) nil építőelemei
94 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: Szétszórt (láncolt) építőelemei
95 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: Szétszórt (láncolt) építőelemei nil nil nil
96 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: Szétszórt (láncolt) építőelemei nil nil nil nil nil nil
97 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: Szétszórt (láncolt) oszlop nil nil nil építőelemei sor nil nil nil nil nil nil nil nil
Adatszerkezetek 1. előadás
Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk
Struktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
Egyirányban láncolt lista
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. A láncolt lista első elemének címét egy, a láncszerkezeten
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..
A Név: l 2014.04.09 Neptun kód: Gyakorlat vezető: HG BP MN l 1. Adott egy (12 nem nulla értékû elemmel rendelkezõ) 6x7 méretû ritka mátrix hiányos 4+2 soros reprezentációja. SOR: 1 1 2 2 2 3 3 4 4 5 6
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
. előadás ról általában, soros, önátrendező, rendezett és kulcstranszformációs Adatszerkezetek és algoritmusok előadás 0. április. ról általában,, és Debreceni Egyetem Informatikai Kar. Általános tudnivalók
2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)
A Név: l 2017.04.06 Neptun kód: Gyakorlat vezet : HG BP l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={28, 87, 96, 65, 55, 32, 51, 69} Mi lesz az értéke az A vektor
Algoritmusok és adatszerkezetek I. 1. előadás
Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási
Adatszerkezetek és algoritmusok
Adatszerkezetek és algoritmusok Jegyzet dr. Juhász István előadása alapján Készítette Csordás Annamária és Mohai Gábor A valós világban rendszerekről beszélünk. A dolgok összetevői egymással kölcsönhatásban
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
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
3. TÖMBÖK Az egyszerű adattípusok ismertetését a tömbökkel kezdjük. Az sem okozna zavart, ha ezt a fejezet nem szerepelne jegyzetünkben, tekintettel arra, hogy a tömböket ismerjük a programozási kurzusokból.
Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
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. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
Érdekes informatika feladatok
A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket
A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.
Lista adatszerkezet A lista adatszerkezet jellemzői 1 Különböző problémák számítógépes megoldása során gyakran van szükség olyan adatszerkezetre, amely nagyszámú, azonos típusú elem tárolására alkalmas,
Táblázatok fontosabb műveletei 1
Táblázatok fontosabb műveletei 1 - - Soros táblázat procedure BESZÚR1(TÁBLA, újelem) - - beszúrás soros táblázatba - - a táblázatot egy rekordokat tartalmazó dinamikus vektorral reprezentáljuk - - a rekordok
Algoritmizálás, adatmodellezés 1. előadás
Algoritmizálás, adatmodellezés 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az induló élből
Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor
Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt
22. GRÁFOK ÁBRÁZOLÁSA
22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)
Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),
A félév során előkerülő témakörök
A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok
Programozási segédlet
Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen
1.előadás Tornai Kálmán
1.előadás Tornai Kálmán tornai.kalman@itk.ppke.hu Általános tudnivalók Előadás: 2 óra (Labor)gyakorlat: 3 óra Előismeretek: Kötelező: Bevezetés a programozásba I-II. Algebra és diszkrét matematika I. II.
Programozás II. előadás
Nem összehasonlító rendezések Nem összehasonlító rendezések Programozás II. előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Programozás II. 2 Rendezés
Haladó rendezések. PPT 2007/2008 tavasz.
Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma
Mátrixok Definíció Az m n típusú (méretű) valós A mátrixon valós a ij számok alábbi táblázatát értjük: a 11 a 12... a 1j... a 1n.......... A = a i1 a i2... a ij... a in........... a m1 a m2... a mj...
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
1. előadás mint Adatszerkezetek és algoritmusok előadás 2019. február 12. fogalma megadása építőelemei mint helyessége elemzés,, és Debreceni Egyetem Informatikai Kar 1.1 Általános tudnivalók Ajánlott
tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is
A tétel (record) tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel elemei mezők. Például tétel: személy elemei: név, lakcím, születési
5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
C programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
Adatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból
ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév
Bánsághi Anna 2014 Bánsághi Anna 1 of 68
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat
Adatszerkezetek I. 1. előadás
Adatszerkezetek I. 1. előadás Adatok jellemzői ismétlés 1. Azonosító Az a jelsorozat, amellyel hivatkozhatunk a tartalmára, amely által módosíthatjuk tartalmát. 2. Hozzáférési jog Adatokat módosítani,
Láncolt listák Témakörök. Lista alapfogalmak
Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök
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.
Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi
Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3
Láncolt Listák Adatszerkezetek Adatszerkezet: Az adatelemek egy olyan véges halmaza, amelyben az adatelemek között szerkezeti összefüggések vannak Megvalósítások: - Tömb, Láncolt lista, Fa, Kupac, Gráf,
Elemi adatszerkezetek
2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Egyszerű programozási tételek
Egyszerű programozási tételek 2. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 15. Sergyán (OE NIK) AAO 02 2011. szeptember 15.
I. VEKTOROK, MÁTRIXOK
217/18 1 félév I VEKTOROK, MÁTRIXOK I1 I2 Vektorok 1 A síkon derékszögű koordinátarendszerben minden v vektornak van vízszintes és van függőleges koordinátája, ezeket sorrendben v 1 és v 2 jelöli A v síkbeli
15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30.
15. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. Edényrendezés Tegyük fel, hogy tudjuk, hogy a bemenő elemek (A[1..n] elemei) egy m elemű U halmazból kerülnek ki, pl. " A[i]-re
7. előadás. Gyorsrendezés, rendezés lineáris lépésszámmal. Adatszerkezetek és algoritmusok előadás március 6.
7. előadás, rendezés lineáris lépésszámmal Adatszerkezetek és algoritmusok előadás 2018. március 6.,, és Debreceni Egyetem Informatikai Kar 7.1 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen,
Algoritmuselmélet 1. előadás
Algoritmuselmélet 1. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 11. ALGORITMUSELMÉLET 1. ELŐADÁS 1 Források
Adatbázis rendszerek Gy: Algoritmusok C-ben
Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés
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
Gráfok 1. Tárolási módok, bejárások előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Gráfok 1. Tárolási módok Szélességi
Algoritmizálás és adatmodellezés 2. előadás
Algoritmizálás és adatmodellezés 2 előadás Összetett típusok 1 Rekord 2 Halmaz (+multialmaz, intervallumalmaz) 3 Tömb (vektor, mátrix) 4 Szekvenciális fájl (input, output) Pap Gáborné, Zsakó László: Algoritmizálás,
hatására hátra lép x egységgel a toll
Ciklusszervező utasítások minden programozási nyelvben léteznek, így például a LOGO-ban is. LOGO nyelven, (vagy legalábbis LOGO-szerű nyelven) írt programok gyakran szerepelnek az iskola számítástechnikai
Rendezések. Összehasonlító rendezések
Rendezések Összehasonlító rendezések Remdezés - Alapfeladat: Egy A nevű N elemű sorozat elemeinek nagyság szerinti sorrendbe rendezése - Feltételezzük: o A sorozat elemei olyanok, amelyekre a >, relációk
Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz
2018/2019 ősz Elérhetőségek Előadó: (safaro@math.bme.hu) Fogadóóra: hétfő 9-10 (H épület 3. emelet 310-es ajtó) A pontos tárgykövetelmények a www.math.bme.hu/~safaro/kalkulus oldalon találhatóak. A mátrix
Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan
Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat
9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom 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
Láncolt listák. PPT 2007/2008 tavasz.
Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Láncolt listák elvi felépítése Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Láncolt
Adatszerkezetek 7a. Dr. IványiPéter
Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a
Algoritmizálás és adatmodellezés tanítása 6. előadás
Algoritmizálás és adatmodellezés tanítása 6. előadás Összetett típusok 1. Rekord 2. Halmaz (+multihalmaz, intervallumhalmaz) 3. Tömb (vektor, mátrix) 4. Szekvenciális file (input, output) Pap Gáborné,
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
1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június
Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
Algoritmuselmélet 2. előadás
Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezé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
Keresés Rendezés Feladat 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 2016. november 7. Farkas B., Fiala
Bevezetés a programozásba. 5. Előadás: Tömbök
Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és
Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK
Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozat fogalma Definíció: Számsorozaton olyan függvényt értünk, amelynek értelmezési tartománya a pozitív egész
INFORMATIKA javítókulcs 2016
INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.
Tuesday, March 6, 12. Hasító táblázatok
Hasító táblázatok Halmaz adattípus U (kulcsuniverzum) K (aktuális kulcsok) Függvény adattípus U (univerzum) ÉT (értelmezési tartomány) ÉK (érték készlet) Milyen az univerzum? Közvetlen címzésű táblázatok
Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.
1 Diszkrét matematika I, 12 előadás Dr Takách Géza NyME FMK Informatikai Intézet takach@infnymehu http://infnymehu/ takach 2005 november 30 Vektorok Definíció Egy tetszőleges n pozitív egész számra n-komponensű
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
Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
Gyakorló feladatok ZH-ra
Algoritmuselmélet Schlotter Ildi 2011. április 6. ildi@cs.bme.hu Gyakorló feladatok ZH-ra Nagyságrendek 1. Egy algoritmusról tudjuk, hogy a lépésszáma O(n 2 ). Lehetséges-e, hogy (a) minden páros n-re
A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
Algoritmuselmélet 1. előadás
Algoritmuselmélet 1. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 11. ALGORITMUSELMÉLET 1. ELŐADÁS 1 Források
6. LISTÁK ábra. A lista absztrakt adatszerkezet (ADS)
6. LISTÁK Az előző fejezetekben megismerkedtünk a láncolt ábrázolással. Láttuk a verem és a sor, valamint előre tekintve a keresőfa pointeres megvalósításának a lehetőségét és előnyeit. A láncolt ábrázolással
Programozás I. - 11. gyakorlat
Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar
Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
2018, Diszkrét matematika
Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes
A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1
Halmazelmélet 1. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Halmazelmélet p. 1/1 A halmaz fogalma, jelölések A halmaz fogalmát a matematikában nem definiáljuk, tulajdonságaival
6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján
Közelítő és szimbolikus számítások 6. gyakorlat Sajátérték, Gersgorin körök Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján . Mátrixok sajátértékei
Algoritmusok vektorokkal keresések 1
Algoritmusok vektorokkal keresések 1 function TELJES_KERES1(A, érték) - - teljes keresés while ciklussal 1. i 1 2. while i méret(a) és A[i] érték do 3. i i + 1 4. end while 5. if i > méret(a) then 6. KIVÉTEL
Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27
Vektorterek Wettl Ferenc 2015. február 17. Wettl Ferenc Vektorterek 2015. február 17. 1 / 27 Tartalom 1 Egyenletrendszerek 2 Algebrai struktúrák 3 Vektortér 4 Bázis, dimenzió 5 Valós mátrixok és egyenletrendszerek
8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések
Ö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.
Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
6. előadás. Kiegyensúlyozottság, AVL-fa, piros-fekete fa. Adatszerkezetek és algoritmusok előadás március 6.
6. előadás, AVL-fa, piros-fekete fa Adatszerkezetek és algoritmusok előadás 2018. március 6.,, és Debreceni Egyetem Informatikai Kar 6.1 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen, Charles
Algoritmusok bonyolultsága
Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,
Algoritmusok és adatszerkezetek I. 4. előadás
Algoritmusok és adatszerkezetek I. 4. előadás A lista olyan sorozat, amelyben műveleteket egy kiválasztott, az ún. aktuális elemmel lehet végezni. A lista rendelkezik az alábbi műveletekkel: Üres: Lista
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.
Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot
BASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
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)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Adatbáziskezelés. Indexek, normalizálás NZS 1
Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis
Vektorok, mátrixok, lineáris egyenletrendszerek
a Matematika mérnököknek I. című tárgyhoz Vektorok, mátrixok, lineáris egyenletrendszerek Vektorok A rendezett valós számpárokat kétdimenziós valós vektoroknak nevezzük. Jelölésükre latin kisbetűket használunk.
Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
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
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 Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány
Bevezetés az informatikába
Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.