Adatszerkezetek és algoritmusok



Hasonló dokumentumok
Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok












Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Adatszerkezetek és algoritmusok Geda, Gábor

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

Széchenyi István Szakképző Iskola

Adatszerkezetek 1. előadás


OKOSTELE. 0 Ft. szükséges. KÉPE. 0 Ft. 80 cm. 0 Ft. kezdőrész


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

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. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3

Egyirányban láncolt lista



Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek
















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..







23. Fa adatszerkezetek, piros-fekete fa adatszerkezet (forgatások, új elem felvétele, törlés)(shagreen)




Struktúra nélküli adatszerkezetek

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

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

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

Programozás II. labor

Dinamikus láncolt lista 4. GYAKORLAT

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


KIEGÉSZÍTŐ MELLÉKLET

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

Az építész- és az építőmérnök képzés szerkezeti és tartalmi fejlesztése

ÉVES BESZÁMOLÓ. AKCEPT Könyvvizsgáló és Számviteli Kft. a vállalkozás megnevezése

félstatikus adatszerkezetek: verem, várakozási sor, hasítótábla dinamikus adatszerkezetek: lineáris lista, fa, hálózat

Programozás I gyakorlat

II. év. Adatbázisok és számítógépek programozása

I. rész Intranet...11 II. rész Windows SharePoint Services... 33

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

Collections. Összetett adatstruktúrák


Körkörös listák. fej. utolsó. utolsó. fej

Adatszerkezetek 1. Dr. Iványi Péter

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

ű Ú ű ű ű ű ű Ú ű Ö ű Ö Ú

Buborékrendezés: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábrázolás: For ciklussal:

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér


Magas szintű programozási nyelvek 2 Előadás jegyzet

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat


Imperatív programozás




Bánsághi Anna



Kalapácsvetés 2016 szöveges





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

Komponens modellek. 3. Előadás (első fele)



Átírás:

2009. november 20.

Bevezet

El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció

El z órák anyagainak áttekintése Szekvenciális adatszerkezetek A szekvenciális adatszerkezet olyan A, R rendezett pár, amelynél az R reláció tranzitív lezártja teljes rendezési reláció (pl. egyszer lista). Szekvenciális adatszerkezetben az egyes adatelemek egymás után helyezkednek el. Az adatok között egy-egy jelleg a kapcsolat: minden adatelem csak egy helyr l érhet el, és az adott elemr l csak egy másik látható. Két kitüntetett elem az els és az utolsó.

El z órák anyagainak áttekintése Szekvenciális adatszerkezetek Ez egy homogén adatszerkezet, azaz azonos típusú véges adatelemek sorozata. Jelölése : L = (a 1, a 2,... a n ) Ha n = 0, akkor L = () az üres lista. A láncolt lista olyan adatszerkezet, amelynek minden eleme tartalmaz egy (vagy több) mutatót (hivatkozást) egy másik, ugyanolyan típusú adatelemre. A lánc els elemének a címét a lista feje tartalmazza. A listafej nem tartalmaz információs részt. A lánc végét az jelzi, hogy az utolsó elemben a rákövetkez elem mutatója üres.

Reprezentáció

ADT Intuitív ADT, ADS Intuitív ADT, ADS szint: Végiglépkedhetünk az elemeken egymás után. Beszúrhatunk, törölhetünk, módosíthatunk értékeket a listában.

Statikus reprezentáció Statikus reprezentáció Táblázat, amiben érték, index párokat helyezünk el. Tudjuk, hogy melyik az els értéket tartalmazó pozíció, valamint az els szabad helyet tartalmazó pozíció. (A szabad helyek is listát alkotnak!) Amelyiknek nincs rákövetkez je, az a lista vége. Elem: 2 SzH: 3 1 2 3 4 5 6 7 8 8 13 7 10 19 6 4 5 1 7 8 0 0

Dinamikus reprezentáció Dinamikus reprezentáció Elemek láncolása, mindegyik csomópont referenciá(ka)t tárol a szomszéd(ok)ra Egyirányú láncolt lista Kétirányú láncolt lista null null null

Kétirányú Láncolt Lista

M veletek A lista állapotváltozói A lista állapotváltozói Head: referencia az els elemre. null, ha üres a lista. Tail: referencia az utolsó elemre. null, ha üres a lista. Akt: egy kiválasztott elemre mutat, lehet léptetni el re és hátra. Amikor üres a lista akkor null az értéke. Az Akt segítségével tudjuk a listában tárolt elemeket elérni, lekérdezni, megváltoztatni.

M veletek A lista m veletei A lista m veletei insertfirst(e): az E elemet beszúrja a lista elejére. insertlast(e): az E elemet beszúrja a lista végére. removefirst(): az els elemet törli a listából. removelast(): az utolsó elemet törli a listából. getaktvalue(): az aktuális elem lekérdezése. setaktvalue(e): az aktuális elem értékének megváltoztatása. stepfirst(): az aktuálist az els re lépteti. steplast(): az aktuálist az utolsóra lépteti. stepforward(): a Tail felé léptet eggyel. stepbackward(): a Head felé léptet eggyel.

M veletek A lista m veletei A lista m veletei insertbefore(e): az E elemet beszúrja az aktuális elé. insertafter(e): az E elemet beszúrja az aktuális mögé. removeakt(): az els elemet törli a listából. islast(): lekérdezi, hogy az aktuális a lista végén van-e. isfirst(): lekérdezi, hogy az aktuális a lista elején van-e. isempty: lekérdezi, hogy üres-e a lista.

Pseudokód M veletek (Pseudokódban) Konstruktor Head null Tail null Akt null isempty() return Head==Tail==null

Pseudokód M veletek Lekérdezések islast() return Akt==Tail isfirst() return Akt==Head getakt() HA Akt null AKKOR return Akt.Ertek setakt(ujertek) HA Akt null AKKOR Akt.Ertek ujertek

Pseudokód M veletek Léptetések stepforward() HA Akt null ÉS islast() AKKOR Akt Akt.Kovetkezo stepbackward() HA Akt null ÉS isfirst() AKKOR Akt Akt.Elozo steplast() Akt Tail stepfirst() Akt Head

Pseudokód M veletek Beszúrások I. insertfirst(ertek) Akt ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo null ujcsomopont.kovetkezo Head HA isempty() AKKOR Head Tail ujcsomopont KÜLÖNBEN Head.Elozo ujcsomopont Head ujcsomopont Head null Head null Régi Tail null Tail Régi null

Pseudokód M veletek Beszúrások I. insertfirst(ertek) Akt ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo null ujcsomopont.kovetkezo Head HA isempty() AKKOR Head Tail ujcsomopont KÜLÖNBEN Head.Elozo ujcsomopont Head ujcsomopont Head null Head Új null Új Régi Tail null Tail Régi null

Pseudokód M veletek Beszúrások II. insertlast(ertek) HA isempty() AKKOR insertfirst(ertek) KÜLÖNBEN Akt ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Tail ujcsomopont.kovetkezo null Tail.Kovetkezo ujcsomopont Tail ujcsomopont

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Régi

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Új Régi

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Új Régi

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Új Régi

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Új Régi

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Új Régi

Pseudokód M veletek Beszúrások III. insertbefore(ertek) HA isempty() VAGY isfirst() AKKOR insertfirst(ertek) KÜLÖNBEN ujcsomopont ÚJ Node ujcsomopont.ertek ertek ujcsomopont.elozo Akt.Elozo ujcsomopont.kovetkezo Akt Akt.Elozo.Kovetkezo ujcsomopont Akt.Elozo ujcsomopont Akt ujcsomopont Régi Új Régi

Pseudokód M veletek Beszúrások IV. insertafter(ertek) HA isempty() VAGY islast() AKKOR insertlast(ertek) KÜLÖNBEN stepforward() insertbefore(ertek)

Pseudokód M veletek Törlések I. removefirst() HA isempty() AKKOR HA isfirst() AKKOR Akt Head.Kovetkezo Head Head.Kovetkezo HA Head null AKKOR Head.Elozo null KÜLÖNBEN Tail null Head Tail Head Tail null null null null

Pseudokód M veletek Törlések II. removelast() HA isempty() AKKOR HA Tail==Head AKKOR removefirst(); VÉGE HA islast() AKKOR Akt Tail.Elozo Tail Tail.Elozo Tail.Kovetkezo null

Pseudokód M veletek Törlések III. removeakt() HA isempty() AKKOR HA isfirst() AKKOR removefirst(); VÉGE HA islast() AKKOR removelast(); VÉGE Akt.Elozo.Kovektkezo Akt.Kovektezo Akt.Kovetkezo.Elozo Akt.Elozo Akt Akt.Kovetkezo Akt

Pseudokód M veletek Törlések III. removeakt() HA isempty() AKKOR HA isfirst() AKKOR removefirst(); VÉGE HA islast() AKKOR removelast(); VÉGE Akt.Elozo.Kovektkezo Akt.Kovektezo Akt.Kovetkezo.Elozo Akt.Elozo Akt Akt.Kovetkezo Akt

Pseudokód M veletek Törlések III. removeakt() HA isempty() AKKOR HA isfirst() AKKOR removefirst(); VÉGE HA islast() AKKOR removelast(); VÉGE Akt.Elozo.Kovektkezo Akt.Kovektezo Akt.Kovetkezo.Elozo Akt.Elozo Akt Akt.Kovetkezo Akt

Pseudokód M veletek Törlések III. removeakt() HA isempty() AKKOR HA isfirst() AKKOR removefirst(); VÉGE HA islast() AKKOR removelast(); VÉGE Akt.Elozo.Kovektkezo Akt.Kovektezo Akt.Kovetkezo.Elozo Akt.Elozo Akt Akt.Kovetkezo Akt

Pseudokód M veletek Törlések III. removeakt() HA isempty() AKKOR HA isfirst() AKKOR removefirst(); VÉGE HA islast() AKKOR removelast(); VÉGE Akt.Elozo.Kovektkezo Akt.Kovektezo Akt.Kovetkezo.Elozo Akt.Elozo Akt Akt.Kovetkezo

Java kód

Kódok

Kódok

Kódok

Kódok

Kódok

Kódok

Kódok

Lengyelforma struktogram

Lengyelformára alakítás Az alábbiakban az y sor a lengyelformára alakítandó kifejezést tartalmazza, az x sor a lengyelformára alakított kifejezést. Az s egy segédverem a lengyelformára hozáshoz. A v egy segédverem a kiértékeléshez. A z pedig az eredmény.

Lengyelformára alakítás

Lengyelforma kiértékelése

Használt függvények Függvények prec(e) HA e==` ' AKKOR return 3 HA e==`*' AKKOR return 2 HA e==`/' AKKOR return 2 HA e==`+' AKKOR return 1 HA e==`-' AKKOR return 1 kiertekel(e, o1, o2) HA e==` ' AKKOR return o1 o2 HA e==`*' AKKOR return o1*o2 HA e==`/' AKKOR return o1/o2 HA e==`+' AKKOR return o1+o2 HA e==`-' AKKOR return o1-o2

Összefoglaló

Összefoglaló Összefoglaló Szekvenciális adatszerkezetek ismétlés Láncolt lista statikus és dinamikus reprezentáció Kétirányú láncolt lista implementáció Lengyelforma II.

Felhasznált el adások Felhasznált el adások 3-5. el adás Nyékyné Gaizler Judit (Illetve új anyagok)