330 likes | 438 Views
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
E N D
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
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus • Elemi adatok és adatstruktúrák Adat: egy modell az információk ábrazolására Elementáris adatok: skaláris, tovább nem osztható Logikai, alkalmazói nívón:<azonosító, attribútum, érték> Fizikai, gépi nívón<belső ábrázolás, egész, decimális, bináris, stb. > • azonosító:< szimbólum ,név> • attribútum <adatok tulajdonságai, típus, hossz, dinamikus vagy statikus> • Az adat értéke <valós, komplex, karaktersor, Bool érték>
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
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: boolean (igen, nem) Karakter: betűk, számok, jelek együttese Mutató: adatok melyek címeket jelentenek
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 • Verem • Sor • Láncolt lista • Gráfok
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 a1, a2, a3,...., an Zárójeles jelölés A(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
1 Antal Árpád 2 Bács Béla 3 Csedő Csaba 4 Dávid Domokos 5 Erőss Elemér 6 Filó Ferenc Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus HALLGATÓ nevű tömb 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.
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 AJK, vagy A[J,K] Oszlopok Sorok 3x4 méretű kétdimenziós tömb
(1,1) (1,1) (2,1) 1.Oszlop (1,2) 1.Sor (3,1) (1,3) (1,2) (1,4) (2,2) 2.Oszlop (2,1) (3,2) (2,2) 2.Sor (1,3) (2,3) (2,3) 3.Oszlop (2,4) (3,3) (3,1) (1,4) (3,2) 3.Sor (2,4) 4.Oszlop (3,3) (3,4) (3,4) A A Oszlop vagy sor szerinti sorrendben helyezik el az információt a belső memóriában
Vásárló Ügynök 1 Antal Szabó 2 Bács Rancz 3 Csedő Janó 4 Dávid Rancz 5 Erőss Szabó 6 Filó Janó 7 Gergely Rancz 8 Halmos Szabó 9 Incze Rancz Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus
Vásárló Mutató Ügynök 1 Antal 3 Janó 1 2 Bács 2 Rancz 2 3 Csedő 1 Szabó 3 4 Dávid 2 5 Erőss 3 6 Filó 1 7 Gergely 2 8 Halmos 3 9 Incze 2 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus
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ám név cím kor fizetés Vezetéknév Keresztnév Ország Országon belüli cím Város Utca házszám Ezt rekordszerkezetnek nevezzük. A relációs modell előtt használták. ÁLTALÁNOS faszerkezet.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus Algebrai kifejezések fastruktúrája (BINÁRIS fa) (2x+y)(a-7b)3 * ↑ + * y 3 - 2 x a * 7 b
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus a) Bináris fák (mindenik csúcsból legtöbb két ág van) b) Általános fák (mindenik csúcsból legtöbb k ág 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,..)
Bináris fa ábrázolása gyökér
Gyökeres általános fák ábrázolása, bal-gyerek lés jobb testvér módszerrel
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 B C
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 if end while Return
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus 5 7 3 8 2 9 Preorder (5,3,2,9,7,8) Inorder (2,3,9,5,7,8) Postorder (2,9,3,8,7,5)
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus 2 3 7 5 8 5 Preorder Inorder Postorder
1 2 3 4 5 6 7 1 2 3 4 5 6 7 15 6 2 9 15 6 2 9 17 3 1 2 3 4 5 6 7 15 6 2 9 17 3 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 Beszúr, töröl, kivesz, üres, alulcsordul, túlcsordul Tető[V]=5
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
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]
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]+1 a sor tele van, beszúrás túlcsordulás
1 2 3 4 5 6 7 8 9 10 11 12 18 23 6 2 4 1 2 3 4 5 6 7 8 9 10 11 12 3 5 18 23 6 2 4 19 1 2 3 4 5 6 7 8 9 10 11 12 3 5 18 23 6 2 4 19 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 2. kurzus A sor 5 eleme az S[7..11] pozícióban fej[S]=7 vége[S]=12 Sorba(S,19), Sorba(S,3), Sorba(S,5) vége[S]=3 fej[S]=7 Sorból(S) vége[S]=3 fej[S]=8
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
Gráfok ábrázolási módja Szomszédsági lista csúcsmátrix 1 2 3 4 5 1 0 1 0 1 1 2 1 0 1 1 0 3 0 1 0 1 0 4 1 1 1 0 1 5 1 0 0 1 0 1 2 1 2 4 5 2 1 3 4 3 3 2 4 4 2 3 5 1 5 4 5 4 1 1 2 3 4 5 6 1 1 1 1 0 0 0 0 0 1 2 3 2 4 2 0 0 0 1 0 0 3 6 2 3 0 1 0 0 0 1 4 1 0 0 0 1 0 4 5 1 5 0 1 0 0 0 0 4 5 6 5 2 6 0 0 0 0 1 0 6 5
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
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)
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
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
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)
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.