Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 2. Előadás tartalma 1. Elemi adatok és adatszerkezetek (struktúrák) 2. Az adatok szervezése és feldolgozása a belső memóriában 3. Az adatok szervezése és feldolgozása a külső memóriában 4. Az adatstruktúrák kiválasztási kritériumai 1
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 1.Elemi adatok és adatstruktúrák Adat: egy modell az információk ábrázolására Elementáris adatok: skaláris, tovább nem osztható Logikai, alkalmazói nívón: Fizikai, gépi nívón<belső ábrázolás, egész, decimális, bináris, stb. > azonosító: attribútum Az adat értéke 2
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda ABR 2-2. kurzus Adatstruktúrák: Csoportosítás: A komponensek kiválasztása szerint (direkt hozzáférésű, szekvenciális hozzáférésű) A memória típusa szerint (belső, külső) A struktúra változékonysága szerint (dinamikus, statikus) Adatstruktúrákon történő műveletek Létrehozás: az adatok memorálása Lekérdezés: az adatok kiolvasása. (bejárás) Aktualizálás: az adatok módosítása (beszúrás, törlés) Rendezés: az adatok sorba helyezése bizonyos logikai sorrend szerint Összevonás: az adatok egyesítése Másolás: az adatok másolása 3
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Adatszervezés: Azonosítás, csoportosítás, a tulajdonságok leírása, gyűjtemények létrehozása A struktúra megállapítása Az ábrázolási módok maghatározása A feldolgozási módok definíciója A fontosabb adattípusok: Numerikus: egész, valós, komplex stb. Logikai: bool tipusú (igen, nem) Karakter: betűk, számok, jelek együttese Mutató: adatok melyek címeket jelentenek 4
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 2. Az adatok szervezése és feldolgozása a belső memóriában: Adattípúsok a belső memóriában Tömbök (vektor, mátrix, n-dimenziós tömb) Kapcsolt listák Fa adatszerkezet (rekordszerkezet, algebrai kifejezés) Más adatszerkezetek 1.Verem 2.Sor 3.Láncolt lista 4.Gráfok 5
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Lineáris (egydimenziós) tömbök Hasonló adatelemek véges számú tagból álló listája. Az egyes elemekre az n tagú halmaz egymást követő sorszámaival hivatkozhatunk. (1,2,3,...,n) C-ben és Java-ban (0,1,2,...,(n-1))-el hivatkozunk Jelölések: Indexes jelölés a 1, a 2, a 3,...., a n Zárójeles jelölésA(1), A(2), A(3),..., A(N) Szögletes zárójeles jelölés A[1], A[2], A[3],…, A[N] Jelöléstől függetlenül az A[K]-ban levő számot indexnek, az A[K]-t indexelt változónak nevezzük 6
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Filó Ferenc6 Erőss Elemér5 Dávid Domokos4 Csedő Csaba3 Bács Béla2 Antal Árpád1 A számok a hallgatóknak a helyét adják meg az adatszerkezetben: HALLGATÓ[1] – Antal Árpádot jelenti HALLGATÓ [5] – Erőss Elemért A memóriában is szekvenciálisan, egymás után vannak elhelyezve az információk. HALLGATÓ nevű tömb 7
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Kétdimenziós tömbök (mátrixok vagy táblázatok) mxn méretű kétdimenziós A tömb m.n adatelemből áll. Indexnek nevezett számpárral hivatkozhatunk az elemekre (pl. J, K) 1≤J≤m és 1≤K≤n Jelölés A JK, vagy A[J,K] Sorok Oszlopok 3x4 méretű kétdimenziós tömb 8
AA Oszlop vagy sor szerinti sorrendben helyezik el az információt a belső memóriában 9
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus RanczIncze9 SzabóHalmos8 RanczGergely7 JanóFiló6 SzabóErőss5 RanczDávid4 JanóCsedő3 RanczBács2 SzabóAntal1 ÜgynökVásárló 10
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 2Incze9 3Halmos8 2Gergely7 1Filó6 3Erőss5 2Dávid4 1Csedő3 2Bács2 3Antal1 MutatóVásárló 3Szabó 2Rancz 1Janó Ügynök 11
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Fa adatszerkezet. Az adatelemek között hierarchikus kapcsolat van. Hurok nélküli gráf (fa adatszerkezet). alkalmazott Személyi számnévcímkorfizetés VezetéknévKeresztnévOrszágOrszágon belüli cím VárosUtcaházszám Ezt rekordszerkezetnek nevezzük. A relációs modell előtt használták. ÁLTALÁNOS faszerkezet. 12
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Algebrai kifejezések fastruktúrája (BINÁRIS fa) (2*x+y)*(a-7*b) 3 b + y* ↑ 2x - 3 a* * 7 13
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus a) Bináris fák (mindenik csúcsnak legtöbb két ága van) b) Általános fák (mindenik csúcsnak legtöbb k ága van) Ábrázolás Zárójelekkel A(B,C) Standard gyökér 1, bal (I), jobb(I) Apa apa (0,1,2,3,2,..) 14
Bináris fa ábrázolása gyökér 15
Gyökeres általános fák ábrázolása, bal-gyerek és jobb testvér módszerrel 16
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Átfutás: Preorder (A,B,C) Inorder (B,A,C) Postorder (B,C,A) Átfutási algoritmus: Procedure Preorder (gyökér) I gyökér; k 0 folytatás = “igen” A BC 17
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus While folytatas = “igen” if i<> 0 then feldog (i); k k+1; v(k) i; i bal(I) else if k = 0 then folytatas = “nem” else i v (k); k k-1; i jobb(i) end if end while Return 18
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Preorder(5,3,2,9,7,8) Inorder(2,3,9,5,7,8) Postorder(2,9,3,8,7,5) 19
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Preorder Inorder Postorder 20
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus A verem: LIFO struktúra (Last In First Out), utolsó be, első ki struktúra Tető[V]=4 Tető[V]=6 Tető[V]=5 Beszúr, töröl, kivesz, üres, alulcsordul, túlcsordul 21
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Az előzőekben egy n elemet tartalmazó verem van megvalósítva V[1..n] tömbbel. Tető[V] attribútum a verembe legutoljára betett elemnek az indexe. V[1..tető[V]] elemekből áll, amelyek közül V[1] a verem legalsó, V[tető[V]] pedig a legfelső eleme. Tető[V]=0 a verem nem tartalmaz elemet és üresnek nevezzük. Ha az üres veremből próbálunk elemet kivenni, alulcsordul. Tető[V]>n akkor a verem túlcsordul. ÜRES-VEREM(V) 1. If tető[V]=0 2. then return IGAZ 3.else return HAMIS 22
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus VEREMBE(V,x) If tető[V]=n 2. then error “túlcsordulás” 3.else tető[V]←tető[V]+1 4.V[tető[V]]←x VEREMBŐL(V) 1. If ÜRES-VEREM(V) 2. then error “alulcsordulás” 3.else tető[V]←tető[V]-1 4.V[tető[V]+1] 23
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Sorok: Értelmezett műveletek: SORBA(BESZÚR), SORBÓL (TÖRÖL) FIFO tulajdonsága van, mint emberekből álló sor a pénztárnál. Első elem fej, utolsó elem vég. Egy legfeljebb n-1 elemű sor megvalósítható egy S[1..n] tömb felhasználásával. Attribútumok: fej[S], a sor első elemét indexeli vég[S], annak a helynek az indexe, amelyre a legközelebb beérkező elemet fogjuk elhelyezni. fej[S]=vége[S] a sor üres Kezdetben fej[S]=vége[S]=1 üres sorból a kivevés alulcsordulás fej[S]=vége[S]+1a sor tele van, beszúrás túlcsordulás 24
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus fej[S]=7 fej[S]=8 vége[S]=12 vége[S]=3 A sor 5 eleme az S[7..11] pozícióban Sorba(S,19), Sorba(S,3), Sorba(S,5) Sorból(S) 25
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus SORBA(S,x) S[vége[S]]←x if vége[S]=hossz[S] then vége[S]←1 else vége[S]←vége[S]+1 SORBÓL(S) x←S[fej[S]] if fej[S]=hossz[S] then fej[S]←1 else fej[S]←fej[S]+1 return x 26
Gráfok ábrázolási módja Szomszédsági lista csúcsmátrix
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Gráfalgoritmusok: Szélességi keresés Mélységi keresés Minimális feszítőfák (Kruskal és Prim algoritmusai) Adott csúcsból induló legrövidebb utak Bellman-Ford algoritmus Dijkstra algoritmusa Hálózati folyamok Ford és Fulkerson algoritmus Edmonds-Karp algoritmus 28
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 3. Az adatok szervezése és feldolgozása a külső memóriában (Hard Disk) Fájlok, szervezési módok és hozzáférés Fájlok: Volumen, blokkok, Létesítés, Aktualizálás Lekérdezés, Közbeékelés Másolás Szervezés (szekvenciális, index szekvenciális, szelektív, relatív, inverz, multiindexált, összekötésekkel, adatbázis ) 29
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Az adatstruktúrák alapvető kiválasztási tényezői. Az adatszerkezet az adatszervezés matematikai vagy logikai modellje. 1. A választott modell szerkezetének elegendően gazdagnak kell lennie ahhoz, hogy tükrözni tudja az adatok közötti aktuális és valós kapcsolatokat 2. A szerkezetnek elegendően egyszerűnek kell lennie ahhoz, hogy hatékonyan fel lehessen dolgozni az adatokat 30
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus 4. Az adatstruktúrák kiválasztási kritériumai. Volumen Operációk és frekvenciájuk Aktivitási mutatója az operációnak A struktúra élettartama A programozás komplexitása A teljesség biztosítása A kapcsolódó tevékenységek időtartama és komplexitása A memória hatékony kihasználása 31
Sapientia - Erdélyi Magyar Tudomány Egyetem (EMTE) Csíkszereda IRT-2. kurzus Ellenőrző kérdések Elemi adatok Adatstruktúrák Az adatstrukturákkal történő műveletek Adatszervezés, Adattípusok Bináris adatfák (reprezentálás és átfutás) 32
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-2. kurzus Ellenőrző kérdések Általános adatfák (reprezentálás és átfutás) Általános gráfok (reprezentálás és átfutás) Adatfeldolgozás a belső memóriában (Sorbarakás, Keresés, Szétszórás) Az adatok szervezése a külső memóriában Az adatok feldolgozása a külső memóriában Az adatstruktúrák kiválasztási kritériumai. 33