Struktúra nélküli adatszerkezetek

Slides:



Advertisements
Hasonló előadás
Események formális leírása, műveletek
Advertisements

Nevezetes algoritmusok

„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
ADATBÁZISOK.
Erőállóképesség mérése Találjanak teszteket az irodalomban
MATEMATIKA Év eleji felmérés 3. évfolyam
Összetett adattípusok 8/b tétel
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Halmazok, műveletek halmazokkal
Műveletek logaritmussal
Illés Tibor – Hálózati folyamok
Utófeszített vasbeton lemez statikai számítása Részletes számítás
Euklidészi gyűrűk Definíció.
Algebrai struktúrák 1.
Csoport részcsoport invariáns faktorcsoport részcsoport
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
A tételek eljuttatása az iskolákba
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
Mutatók, tömbök, függvények
Halmazok, relációk, függvények
3. LOGIKAI ADATSZERKEZETEK
Készítette: Pető László
A Halmazelmélet elemei
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
5. VÉGTELEN HALMAZOK 5.1 Kiválasztási axióma
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
A számfogalom bővítése
Darupályák tervezésének alapjai
Halmazok Összefoglalás.
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
dr. Szalkai István Pannon Egyetem, Veszprém
Tömbök Csernoch Mária.
Matematikai alapok és valószínűségszámítás
szakmérnök hallgatók számára
Exponenciális egyenletek
Logikai szita Izsó Tímea 9.B.
Halmazok Tanítás.
TÖMBÖK Asszociatív adatszerkezetek Tömbök
Adatszerkezetek 1. előadás
Egyirányban láncolt lista
Speciális Listák: Sor A sor adatszerkezet olyan speciális lista, amelyet a műveletei definiálnak. 1. ACCESS HEAD 3. POP itt GET-nek nevezzük 5. INJECT.
VARIÁCIÓK ISMÉTLÉS NÉLKÜLI ESET DEFINÍCIÓ
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Egyenesvonalú (lineáris) adatszerkezetek
Objektum orientált programozás
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Lineáris algebra.
Az informatika logikai alapjai
BINÁRIS FA Definició: A fa olyanösszefüggő gráf, amelyben nincs kör
Mikroökonómia gyakorlat
A MATEMATIKA FELÉPÍTÉSÉNEK ELEMEI
Gráfok ábrázolása teljesen láncoltan
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
előadások, konzultációk
Halmazok Érettségi követelmények:
Nevezetes algoritmusok
Mediánok és rendezett minták
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Előadás másolata:

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 … 23:05

A halmaz adatszerkezet Dinamikus és homogén adatszerkezet. Az adatelemek között nincs kapcsolat, így nem beszélhetünk az elemek sorrendjéről sem. A halmaz, mint absztrakt adatszerkezet megfelel a matematikai halmaz fogalomnak. Így pl. nincs benne ismétlődő elem. Van üres halmaz. Szemben a matematikai halmaz fogalommal, a halmaz adatszerkezetben nem engedünk meg végtelen számosságú halmazt. 23:05

Halmazokra értelmezett műveletek ELEME (∈, in ): megmondja, hogy egy adott adatelem benne van-e a halmazban, vagy sem UNIÓ KÉPZÉS ( U, + ): eredménye egy olyan új halmaz, amelynek elemei a kiinduló halamazok valamelyikében szerepeltek (elemei voltak). METSZET KÉPZÉS (∩, * ): eredménye egy olyan új halmaz, melynek elemei a kiinduló halmazokmindegyikében szerepeltek. KÜLÖNBSÉGKÉPZÉS ( \, - ): eredménye egy olyan új halmaz, amelynek elemei a műveleti jel bal oldalán álló halmazban szerepeltek, a jobb oldalán halmazban pedig nem szerepeltek. KOMPLEMENTER KÉPZÉS: (alaphalmaz) 23:05

Halmazokra értelmezett műveletek Összehasonlítás: Egyenlőség Valódi és „nem valódi” részhalmaz 23:05

A halmaz adatszerkezet műveletei LÉTREHOZÁS: Felsorolás segítségével megadjuk a halmaz elemeit (szék, asztal, tábla, pad, …) Megadunk egy olyan „predikátumot”, amely alapján minden elemről eldönthető, eleme-e a halmaznak (A … teremben is megtalálható bútorfajták.) BŐVÍTÉS: Minden esetben az unióképzés, mint halmazművelet segítségével történik. CSERE: Nem értelmezett, NINCS. (Tágabb értelemben esetleg: Törlés + bővítés.) LOGIKAI TÖRLÉS: Nem értelmezett, NINCS. 23:05

A halmaz adatszerkezet műveletei FIZIKAI TÖRLÉS: A különbség képzés halmazművelettel valósítható meg. RENDEZÉS: Nem értelmezett. (Struktúra nélküliség miatt.) ELÉRÉS: KERESÉS: FELDOLGOZÁS: Az alap halmazműveletekkel történik. 23:05

Halmazok ábrázolása A halmaz ábrázolása karakterisztikus függvénnyel történik, amelyet általában folytonos módon ábrázolunk a következő módon: Adunk egy felső korlátot a lehetséges elemek számára. (Megadjuk az „alaphalmaz” számosságát.) (Itt használjuk ki, hogy nem engedtük meg a végtelen számosságú halmazok létét.) Lefoglalunk annyi bitet, ahány eleme lehet a halmaznak. A lehetséges elemeket „sorba állítjuk”. Az elemekhez a sorrend alapján kölcsönösen egyértelműen hozzárendelünk egy-egy bitet a lefoglaltak közül. A továbbiakban ezen bit 1-es értéke jelzi ha az adott elem eleme a halmaznak, és a bit 0-s értéke jelzi, ha nem eleme a halmaznak. 23:05

Halmazok ábrázolása A B C D E F 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 A_halmaz={2,C,3,7,A,F,9} A_halmaz reprezentációja== > 1 Mekkora tárhelyre van szükség annak a halmaznak a kezeléséhez, amely legfeljebb 256 elemből áll? 23:05

A halmazműveletek megvalósítása Két, karakterisztikus függvénnyel ábrázolt halmaz közötti összes elemi halmazművelet az előbb megadott bitvektorok közötti logikai műveletekre vezethető vissza. (A számítógépek nagyon „erősek” a logikai műveletek körében.) Az eleme művelet: létrehozunk egy olyan bitmintát, ahol az „ellenőrizni kívánt” elemhez tartozó bitet 1-re, a többit 0-ra állítjuk, majd e között és a karakterisztikus függvény bitvektora között végrehajtunk egy „bitenkénti logikai ÉS” műveletet. Ha eredményül nem a csupa 0 bitet tartalmazó bitvektort kapjuk, akkor a kérdéses elem eleme a halmaznak. Egyébként nem. 23:05

A halmazműveletek megvalósítása Az unió képzés művelete: Visszavezethető a logikai VAGY műveletre. Tekintsük a két halmazt leíró karakterisztikus függvények bitvektorát. Hajtsuk végre a két bitvektor közötti (bitenkénti) logikai VAGY műveletet. Eredményként a két kiinduló halmaz uniójának karakterisztikus függvényéhez tartozó bitvektort kapjuk. 23:05

A halmazműveletek megvalósítása A metszet képzés művelete: Visszavezethető a logikai ÉS műveletre. Tekintsük a két halmazt leíró karakterisztikus függvények bitvektorát. Hajtsuk végre a két bitvektor közötti (bitenkénti) logikai ÉS műveletet. Eredményként a két kiinduló halmaz metszetének karakterisztikus függvényéhez tartozó bitvektort kapjuk. 23:05

A halmazműveletek megvalósítása A komplementer képzés művelete: Visszavezethető a logikai NEGÁLÁS műveletére. A különbség képzés művelete: Visszavezethető logikai műveletekre. 23:05

A multihalmaz adatszerkezet Dinamikus és homogén adatszerkezet. Az adatelemek között nincs kapcsolat, így nem beszélhetünk az elemek sorrendjéről sem. Van üres halmaz. Szemben a matematikai halmaz fogalommal, a halmaz adatszerkezetben nem engedünk meg végtelen számosságú halmazt. A multihalmaz abban különbözik a halmaztól, hogy megenged azonos elemeket is, azaz egy adott elem nem csak 0-szor vagy 1-szer fordulhat elő, hanem többször is. 23:05

Multialmazok műveletei (hasonlóak, mint a halmazé) ELEME ( ): nincs eltérés; (lehet picit másként is.) UNIÓ KÉPZÉS ( ): egy adott értékű elem annyiszor fog szerepelni az unióban, ahányszor a kiinduló multihalmazokban együttesen szerepel. (összeg, de elképzelhető maximum is) METSZET KÉPZÉS ( ): egy adott értékű elem annyiszor fog szerepelni az unióban, ahányszor a kiinduló multihalmazok mindegyikében szerepel. (minimum) KÜLÖNBSÉGKÉPZÉS ( ): adott elem a kiinduló multihalmazokban való előfordulásainak különbségeszer fog előfordulni, ha a baloldali multihalmazban fordul elő többször. Egyébként 0- szor. (kivonás) KOMPLEMENTER KÉPZÉS: nehezebb dió… 23:05

Multihalmazok ábrázolása Általában itt is karakterisztikus függvényt használunk, Amit általában szintén folytonosan tároljuk, de Mivel adott elem többször is előfordulhat a multihalmazban, így egyetlen bit helyett, az elemek várható maximumától függő nagyságú egész számok ábrázolásához szükséges tárhelynek foglalunk helyet. Most is kölcsönösen egyértelmű kapcsolatot hozunk létre a multihalmaz elemei és a tárhelyek között. A lefoglalt tárhelyekre az adott elem multihalmazbeli előfordulási számát írjuk. 23:05

Struktúra nélküli adatszerkezetek A halaz és a multihalmaz olyan problémák kezelésénél játszanak szerepet, ahol olyan adatokat kell kezelni, ahol az adatelemek nincsenek megkülönböztetve és nincs közötük kapcsolat. Műveleteik implementációjának úgy kell létrejönnie, hogy az absztrakt viselkedésmódot valósítsák meg. Ez azt jelenti, hogy az implementációnak el kell rejtenie a reprezentációs szerkezeteket, és az algoritmust megvalósító részleteket is. 23:05

Asszociatív adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli Asszociatív Tömb Vektor Mátrix Háromszögmátrix Ritka mátrix Dinamikus tömb Táblázat ……. … 23:05

Asszociatív adatszerkezetek Az asszociatív adatszerkezet olyan halmaz, vagy multihalmaz, amelyből bizonyos adott feltételeknek eleget tevő részhalmazokat választhatunk ki. == > A legfontosabb művelet a részhalmaz kiválasztás művelete. 23:05

A tömb adatszerkezet Statikus és homogén, asszociatív adatszerkezet. Az egyik leggyakrabban használt adatszerkezet, amelyet A felépítése definiál, és amelyben Az adatelemek egymáshoz viszonyított helyzete a lényeges. A tömb bármely eleme egész számok egy sorozatán keresztül érhető el. Minden adatelemhez különböző egész szám sorozat tartozik: az asszociativitást biztosító részhalmazok diszjuktak és egy eleműek. A szám sorozat elemeit a tömb indexeinek nevezzük. Az indexek számát dimenziónak hívjuk. 23:05

A tömb adatszerkezet Egydimenziós tömb (Vektor): Rögzítjük az első elem helyét, A többi elem helyét ehhez viszonyítjuk Ha mást nem mondunk, az indexek értéke 1-től indul. Vektor (jelzők nélkül) == > számunkra 1 dimenziós statikus tömb Kétdimenziós tömb (Mátrix) Itt is az első elemhez viszonyítjuk a többit Beszélünk sorokról és oszlopokról A dimenziók száma tetszőleges, de mindig véges 23:05

A tömb adatszerkezet műveletei LÉTREHOZÁS: Rögzítjük a dimenziók számát, Az egyes dimenziókhoz tartozó indexek tartományát, és ezáltal Az elemek számát A szerkezet kialakításával párhuzamosan esetleg elemeket is elhelyezhetünk a szerkezetben. BŐVÍTÉS: NINCS. (Statikus adatszerkezet.) CSERE: Elem elhelyezése oda, ahová nem tettünk a létrehozásakor Hagyományosan: létező elem értékét felülírjuk 23:05

A tömb adatszerkezet műveletei FIZIKAI TÖRLÉS: NINCS. (Statikus adatszerkezet.) LOGIKAI TÖRLÉS: Speciális CSERE műveletként értelmezhető ELÉRÉS: Az adatszerkezet elemeinek elérése közvetlen. RENDEZÉS: Általában nem értelmezett. Vektoroknál (1 dimenziós tömb) viszont igen. 23:05

A tömb adatszerkezet műveletei KERESÉS: A közvetlen elérés miatt általában nem beszélünk keresésről. Teljes keresés. (Amikor nem általában…..) Rendezett vektor esetében viszont van értelme. Ilyenkor bármelyik kereső algoritmus alkalmazható. FELDOLGOZÁS: Alapja a közvetlen elérés BEJÁRÁS: Értelmezhető művelet, de Reprezentáció függő 23:05

A tömbök ábrázolása A folytonos ábrázolást szoktuk alkalmazni. Ez vektoroknál teljesen természetes is. Többdimenziós tömböknél beszélünk Sor folytonos és Oszlop folytonos ábrázolásról. A reprezentáció fontos eleme a CÍMFÜGGVÉNY. Ez a függvény meghatározza adott elem tárhelyének címét a hozzá tartozó index értékek és az első elem tárhelyének címe alapján. 23:05

Címfüggvény Vektor == > Neve (pl.) A Index tartománya: s-től, t-ig Egy tömb elem tárolásához szükséges tárhely mérete: l Az első elem tárhelyének címe: K == > Címe(Ai)=K+l*(i-s) Az összes tömb elem tárolásához szükséges tárhely mérete: l*(t-s+1) 23:05

Mátrix: sor és oszlop folytonos ábrázolás Sor folytonos ábrázolás Oszlop folytonos ábrázolás A11 1 A12 2 A13 3 A14 4 A15 5 A21 6 A22 7 A23 8 A24 9 A25 10 A31 11 A32 12 A33 13 A34 14 A35 15 A41 16 A42 17 A43 18 A44 19 A45 20 A51 21 A52 22 A53 23 A54 24 A55 25 A61 26 A62 27 A63 28 A64 29 A65 30 A[i,j] ↔ SF[(i-1)*5+j] A11 1 A12 7 A13 13 A14 19 A15 25 A21 2 A22 8 A23 14 A24 20 A25 26 A31 3 A32 9 A33 15 A34 21 A35 27 A41 4 A42 10 A43 16 A44 22 A45 A51 5 A52 11 A53 17 A54 23 A55 29 A61 6 A62 12 A63 18 A64 24 A65 30 A[i,j] ] ↔ OF[(j-1)*6+i] 23:05

Címfüggvény Mátrix == > Neve (pl.) A Index tartománya: s-től, n-ig és t-től m-ig Egy tömb elem tárolásához szükséges tárhely mérete: l Az első elem tárhelyének címe: K == > Címe_sf(Ai,j)=K+l*{(i-s)*(m-t+1)+(j-t)} Címe_of(Ai,j)=K+l*{(n-s+1)*(j-t)+(i-s)} Az összes tömb elem tárolásához szükséges tárhely mérete: l*(n-s+1)*(m-t+1) 23:05