Absztrakt adatstruktúrák A bináris fák
|
|
- Oszkár Pataki
- 9 évvel ezelőtt
- Látták:
Átírás
1 ciós lámpa a legnagyobb élettartamú és a legjobb hatásfokú fényforrásnak tekinthető, nyugodtan mondhatjuk, hogy a jövő fényforrása. Ezt bizonyítja az a tény, hogy ezen a területen a kutatások és a bejelentett részmegoldásokra vonatkozó szabadalmak száma nagymértékben megnövekedett. Ugyanakkor jelentkeznek a globalizációs korszakunknak ezen a területen mutatkozó visszahúzó tendenciái. Az indukciós lámpákat kifejlesztő nagy multinacionális cégeknek hosszútávon nem bizonyul jó befektetésnek ezeknek a lámpáknak a gyártása és további fejlesztése. Ugyanis egy indukciós lámpa napi 4-5 órai üzemelés esetén évig működőképes és a jövőben minden bizonnyal ezt még tovább lehet fokozni. Egy ilyen típusú lámpán az igen magas ár ellenére sem keresne annyit a gyártó cég, mint ezen idő alatt a többi típusú lámpák eladásából. Az indukciós lámpák bevezetésével a lámpagyárakban sok munkahely válik feleslegessé. Tehát az indukciós lámpa kérdése a XXI. századunk sajátos problematikájára is rávilágít, amelyet úgy fogalmazhatunk meg, hogy minden forradalmian új felfedezés a társadalomban súlyos gazdasági és társadalmi problémákat vethet fel, és kérdés, hogy ezekre a kihívásokra kellő időben tud-e megoldást találni az emberiség? Puskás Ferenc Absztrakt adatstruktúrák A fák Bináris fának egy, véges számú csomóponttal rendelkező absztrakt adatstruktúrát nevezünk, ahol a csomópontok vagy üresek, vagy két fa ágazik ki belőlük. Ezt a két részfát bal-, illetve jobboldali részfának nevezzük. Grafikusan a fát a következőképpen ábrázoljuk: Megfigyelhetjük, hogy a fának két alapvetően elkülöníthető része van: a terminális elemek, vagy levelek, amelyekből már nem indulnak ki további részfák, illetve a nemterminális elemek, vagy belső csomópontok. A memóriában a fákat lista segítségével ábrázolhatjuk: type PRoot = ^TRoot; TRoot = record Data: DataType; Left,Right: PRoot; end; A fák létrehozását rekurzívan végezhetjük el legegyszerűbben. Így járunk el a bejárásuknál is. Háromféle bejárás ismeretes: a.) Preorder: Gyökér - bal - jobb típusú bejárás. b.) Inorder: Bal - jobb - gyökér típusú bejárás. Az előbbi példa a három bejárás szerint így nézne ki: a.) * + a b - c d / a b b.) a + b * c - d - a / b c.) a b + c d - * a b / /6 235
2 Két szempont szerint tárgyaljuk a fákat. Az első szempont a fák, mint adattárolásra és keresésre szolgáló adatszerkezetek - szimbólumtáblák megítására, a második szempont a fák, mint a kifejezések kiértékelését elősegítő, postfix struktúrák. A beszúrás művelete A fa kezdetben üres, egyetlen elemet sem tartalmaz. Az első elem beolvasásakor tehát először a gyökérelemet építjük fel. Az első elem fogja képezni a fa gyökerét. A későbbi elem beszúrása kereséssel jár: megkeressük, hogy a beolvasott elem már benne van-e a fában, ha igen, akkor a régi adatokat egyszerűen lecseréljük az új adatokra. Ha a beolvasott elem nincs benne a fában, akkor a keresés visszaadja az ehhez legközelebb álló (közvetlenül kisebb vagy nagyobb) gyökérelemet a fából. Összehasonlítjuk a beolvasott elemet ezzel az elemmel, ha kisebb nála, akkor a gyökérelem baloldali levelét, ha pedig nagyobb nála, akkor a jobboldali levelét hozzuk létre, és ide szúrjuk be az adatokat. Példa: A 4-es illetve a 8-as elemek beszúrása egy már meglévő fába: A keresés művelete A fa kezelésének egyik alapművelete a keresés. Az algoritmus leírása: tmp := gyökér amig szimbólum <> tmp^.data végezd el ha szimbólum > tmp^.data akkor ha tmp^.right üres akkor stop (ha) vége tmp := tmp^.right (ha) vége ha szimbólum < tmp^.data akkor ha tmp^.left üres akkor stop (ha) vége tmp := tmp^.left (ha) vége (amig) vége ha szimbólum = tmp^.data akkor megtaláltam (ha) vége Így bejárva tehát a fát vagy megkapjuk a keresett szimbólumot, vagy a hozzá legközelebb álló szimbólumot kapjuk vissza. A kiegyensúlyozás művelete Az adatstruktúra létrehozásakor fennállhatnak olyan esetek, amikor a keresés részlegesen vagy teljesen szekvenciális lesz. Ez olyan esetekben állhat fenn, mikor az elemek növekvő sorrendben követik egymást. Ekkor a beszúrás miatt a fa eltolódhat egy irányba, lineáris struktúrává válhat. Ahhoz, hogy visszaállítsuk a fa struktúráját, ki kell ezt egyensúlyozzuk. Fa kiegyensúlyozására nagyon sok algoritmus ismeretes. Itt csak egyet szeretnénk említeni. Ez a következő: Például: /6
3 1.) Inorder bejárással bontsuk le a fát. Így egy listát kapunk, amelyben az elemek ábécé sorrendbe vannak rendezve: ) A listából felezéssel építsük vissza a fát. Ez azt jelenti, hogy megkeressük a lista középső elemét, az lesz a fa gyökere, így két listát kapunk. Az első lista fogja képezni a baloldali részfát, a második pedig a jobboldali részfát. A felezési algoritmust addig ismételjük, ameddig a lista üres nem lesz. Példaul: Ez a módszer egyszerű, lényegesen javít a keresés sebességén (most már keresés lesz), és a fa visszaépítésénél fel tudjuk használni a beszúrás algoritmusát is. Kifejezések ellenőrzésére és kiértékelésére szolgáló fák A kifejezések olyan programelemek, amelyekkel számítási folyamat írható le. Szintaktikai szempontból egy kifejezés operátorokból és operandusokból áll, amelyek leírják ezt a számítási folyamatot. Egy kifejezés kiértékelésének célja egy adott változó értékének a kiszámítása. Ez a kiszámítás a kiértékelés folyamatának az igénybevételével ul meg. A kifejezések osztályozásában a következő kritériumok játszanak fontos szerepet: a műveletek száma a műveletek operandusokhoz viszonyított pozíciója a kiértékelés eredményének típusa a kifejezés szintaxisa Példák kifejezésekre: (x+y)*(y-z), not B, (x = y) or (x <> z). Műveletek Az operandusok száma mérvadóan jellemző egy operátorra nézve. Ilyen szempontból beszélhetünk unáris műveletekről, amelyeknek egyetlen operandusuk van (Pl. +, -, not), (két operandusú) műveletekről (Pl. +, -, *, /, and, or, xor) és általában n-áris műveletekről. Az operátorok és operandusok helyétől függően beszélhetünk infix, postfix és prefix kifejezésekről. Ha kifejezésekből fákat építünk fel, akkor a kifejezések ilyen típusú osztályozása a felépített fa bejárási módjaival egyenértékű (inorder, postorder és preorder). Kifejezések típusa A szimbolizált művelet természete szerint az operátorok lehetnek: aritmetikai bit relációs referencia logikai feltételes halmaz értékadási műveletek karaktersorozat Egy kifejezés típusa a benne szereplő műveletek és operandusok típusából határozható meg. Attól függően, hogy melyek a domináns operátorok, a kifejezés típusa a fent felsorolt operátortípusok egyike lehet. Aritmetikai kifejezések Aritmetikai műveleteket használunk az aritmetikai, numerikus kifejezések felépítésére. Lássuk például a Pascal aritmetikai műveleteit: /6 237
4 Operátor Művelet Típus Eredmény Osztály + összeadás - kivonás * szorzás / osztás div osztás mod maradékosztály + pozitív előjel unáris - negatív előjel unáris Az aritmetikai kifejezések tehát összeadás, kivonás, szorzás, osztás, maradékszámítás műveleteket és a két unáris előjelt (pozitív, negatív) használhatják. A műveletek mellett azonosítókat vagy konstansokat adhatunk meg operandusokként, valamint használhatjuk a zárójeleket is a műveletvégzési sorrend meghatározására. Példák aritmetikai kifejezésekre: (x+y) * (alpha--beta), 12+35*4, 15*-delta/(2+4.8). Aritmetikai kifejezések kiértékelése - a kifejezést fordított lengyel formára hozzuk egy fa segítségével. - a fordított lengyel formában ábrázolt kifejezést kiértékeljük egy verem segítségével. Fordított lengyel alaknak nevezzük a következő ábrázolásmódot: a.) Egy operandus fordított lengyel alakban lévő kifejezés. b.) Ha K1 és K2 két fordított lengyel alakban lévő kifejezés és o egy operátor, akkor K1 K2 o fordított lengyel alakú. c.) Bármely fordított lengyel alakú kifejezés az a.) és b.) szabályok segítségével származtatható. Példák: Kifejezés Fordított lengyel forma a+b a b + (c-d) c d - (a+b)*(c-d) a b + c d - * a+b*c-d a b c * + d - Ha ismerjük az operátorok prioritását, a kifejezések nagyon egyszerűen átalakíthatóak fává, a következő szabályok betartásával: a.) A műveletek nem terminális csomópontok. b.) Bármely terminális elem egy változó vagy egy konstans. c.) Bármely nem terminális csomópontnak a bal- illetve a jobb részfája a művelet két operandusát jelenti. d.) A fa gyökere az utolsó elvégzendő művelet. Először rögzítenünk kell egy prioritási sorrendet. A fává alakításhoz változó prioritást használunk. Ez azt jelenti, hogy adott egy általános prioritás és ezt változtatjuk a megfelelő szimbólumokra. Két tömböt kell tehát használnunk, az egyikben tároljuk az eredeti kifejezést, amelyből kiszűrjük a zárójeleket, a másikban tároljuk a prioritásokat. Legyen a prioritásszámoló szabály a következő: /6
5 - Legyen pr az általános prioritás, e a kifejezéstömb, p a prioritástömb és s a beolvasott szimbólum. - pr kezdetben 0. - Ha s konstans vagy változó, akkor a prioritása 1000 és ezt beírjuk p-be, s-et pedig beírjuk e-be. - Ha s nyitó zárójel ( ( ), akkor növeljük pr-et 100-al. - Ha s - (negatív előjel), akkor p-be beírunk pr at, e-be pedig beírunk valamilyen s-et szimbolizáló jelt (pl. _). - Ha s csukó zárójel ( ) ), akkor csökkentjük pr-et 100-al. - Ha s + vagy - (), akkor p-be kerül pr + 1, e-be pedig s. - Ha s * vagy /, akkor p-be kerül pr + 10, e-be pedig s. Így tehát a rendelkezésünkre áll két tömb, az egyik a zárójelek nélküli kifejezést, a másik a kifejezésben szereplő szimbólumok prioritását tartalmazza. E két tömb segítségével, rekurzívan, fát építünk fel. A rekurzív algoritmushoz a következő információkra van szükségünk: - a két tömbre, - két értékre, az alsó és a felső határra, amely megadja, hogy momentán a két tömb melyik részével dolgozunk, kezdetben az alsó 1, a felső pedig a tömbök hossza. Az algoritmus: Input: A két tömb, alsó, felső. Output: A felépített fa. Módszer: 1.) Az alsó - felső résztömbben megkeressük a legkisebb prioritású műveletet, legyen ez az i-edik (jobbról - balra). 2.) Létrehozzuk az új csomópontot. 3.) Az új csomópont adata az 1.)-nél megkapott művelet lesz. 4.) Ha alsó = felső, akkor a csomópont bal illetve jobboldali részfája üres lesz. 5.) Különben ha a művelet unáris, akkor rekurzívan felépítjük a jobboldali részfát i+1-re és felsőre. 6.) Ha a művelet, akkor rendre felépítjük a baloldali részfát alsóra és i-1-re valamint a jobboldali részfát i+1-re és felsőre. Példa: Legyen a kifejezés: (a+b)*(c-d) A zárójelek nélküli kifejezés és a prioritástömb a következő: e: a + b * c - d p: A felépített fa: A fa postorder bejárása A fát postorder módon szintén rekurzívan fogjuk bejárni. A bejárt csomópontokból kiolvasott adatokat egy flf tömbben tároljuk. Kezdetben ez a tömb üres. Az algoritmushoz még szükségünk van az aktuális csomópontra, legyen ez R, és kezdetben a fa gyökere. Az algoritmus: Input: R, flf /6 239
6 Output: flf Módszer: 1.) ha R nem üres, akkor 2.) rekurzívan hívjuk az algoritmust R baloldali részfájára és flf-re. 3.) rekurzívan hívjuk az algoritmust R jobboldali részfájára és flf-re. 4.) flf-be beírjuk R adatát. A bejárás után flf-ben megkapjuk fordított lengyel formában a kifejezést. Ezt a kifejezést postfix kifejezésnek nevezzük. Példa: A fenti fa a következő fordított lengyel formában lévő kifejezést eredményezi a postorder bejárás után: flf: a b + c d - * Megfigyelhetjük, hogy a fában már nincs szükség a zárójelekre, a műveletek sorrendje egyértelműen eldönthető. Fordított lengyel alakban ábrázolt kifejezéseket nagyon könnyű kiértékelni. A kiértékeléshez egy veremre van szükségünk, és a következő algoritmus szerint járunk el: a.) Elindulunk a fordított lengyel ábrázolásmódban levő kifejezés bal oldaláról. b.) Ha változót vagy konstanst találunk, akkor betesszük a verembe. c.) Ha unáris műveletet találunk, akkor kivesszük a verem legfelső elemét, végrehajtjuk rajta a műveletet, majd az eredményt visszahelyezzük a verembe. d.) Ha művelet kerül sorra, akkor a felső két elemet vesszük ki a veremből, a művelet végrehajtása után visszaírjuk az eredményt. e.) Az eljárást addig folytatjuk, amíg a kifejezés végére érünk. A veremben maradt adat a kifejezés értéke. Példa: A fenti a b + c d - * postfix kifejezés kiértékelésekor a verem így néz ki: feltételezzük, hogy a változók a következő értékekkel rendelkeznek: a = 1 b = 10 a verem az algoritmus során így módosul: c = 100 d = 1000 A kifejezés értéke tehát lesz. Kovács Lehel /6
Aritmetikai kifejezések lengyelformára hozása
Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási
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
Adatszerkezetek és algoritmusok
2010. január 8. 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ó Láncolt lista Lassú
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
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
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
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.
Készítette: Nagy Tibor István
Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:
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
Hierarchikus adatszerkezetek
5. előadás Hierarchikus adatszerkezetek A hierarchikus adatszerkezet olyan < A, R > rendezett pár, amelynél van egy kitüntetett r A gyökérelem úgy, hogy: 1. r nem lehet végpont, azaz a A esetén R(a,r)
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
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek 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 B-fa Felépítése Beszúrás művelete Törlés
Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Információs Technológia
Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió
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ő.
Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy
Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj Divide & Conquer (,,Oszd meg és uralkodj ) paradigma Divide: Osszuk fel az adott problémát kisebb problémákra. Conquer: Oldjuk meg a kisebb
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete
A szemantikus elemzés elmélete Szemantikus elemzés (attribútum fordítási grammatikák) a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák Fordítóprogramok előadás
1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba
Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai
Verem Verem mutató 01
A számítástechnikában a verem (stack) egy speciális adatszerkezet, amiben csak kétféle művelet van. A berak (push) egy elemet a verembe rak, a kivesz (pop) egy elemet elvesz a verem tetejéről. Mindig az
7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
Kifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},
Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
Excel Hivatkozások, függvények használata
Excel Hivatkozások, függvények használata 1. Fejezet Adatok, képletek, függvények Adatok táblázat celláiba írjuk, egy cellába egy adat kerül lehet szám, vagy szöveg * szám esetén a tizedes jegyek elválasztásához
Kifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;
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
Informatika érettségi vizsga
Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés
Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;...
Egész számok természetes számok ( ) pozitív egész számok: 1; 2; 3; 4;... 0 negatív egész számok: 1; 2; 3; 4;... egész számok ( ) 1. Írd a következõ számokat a halmazábra megfelelõ helyére! 3; 7; +6 ; (
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!
A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-
Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására
Nyelvek használata adatszerkezetek, képek leírására Formális nyelvek, 2. gyakorlat 1. feladat Módosított : belsejében lehet _ jel is. Kezdődhet, de nem végződhet vele, két aláhúzás nem lehet egymás mellett.
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
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
Excel Hivatkozások, függvények használata
Excel Hivatkozások, függvények használata 1. Fejezet Adatok, képletek, függvények Adatok táblázat celláiba írjuk, egy cellába egy adat kerül lehet szám, vagy szöveg * szám esetén a tizedes jegyek elválasztásához
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,
Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
A C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
A C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
az Excel for Windows programban
az Excel for Windows táblázatkezelőblázatkezel programban Mit nevezünk nk képletnek? A táblt blázatkezelő programok nagy előnye, hogy meggyorsítj tják és könnyebbé teszik a felhasználó számára a számítási
sallang avagy Fordítótervezés dióhéjban Sallai Gyula
sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?
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
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
... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu
Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor
Bináris keresőfa Felépítés, alapvető műveletek 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 Bináris keresőfa Rekurzív
Algoritmizálás és adatmodellezés tanítása 1. előadás
Algoritmizálás és adatmodellezés tanítása 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
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.
Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás Piros-fekete fa B-fa 2 Fa
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá
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
1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás
Preorder ejárás Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban lévő adatokra.
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
Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.
Számelmélet I. DEFINÍCIÓ: (Osztó, többszörös) Ha egy a szám felírható egy b szám és egy másik egész szám szorzataként, akkor a b számot az a osztójának, az a számot a b többszörösének nevezzük. Megjegyzés:
ködös határ (félreértés, hiba)
probléma formálisan specifikált: valós világ (domain) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A szoftver fejlesztőnek meg kell értenie a felhasználó problémáját. A specifikáció
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1
A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található meg. A CD-melléklet használata Bevezetés xi xiii 1. Elméleti áttekintés 1 1.1. Adatmodellezés 3 1.2. Táblák, oszlopok és sorok
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
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
Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33
1/33 Logika és számításelmélet I. rész Logika Harmadik előadás Tartalom 2/33 Elsőrendű logika bevezetés Az elsőrendű logika szintaxisa 3/33 Nulladrendű állítás Az ítéletlogikában nem foglalkoztunk az álĺıtások
Algoritmusok és adatszerkezetek I. 2. előadás
Algoritmusok és adatszerkezetek I. 2. előadás Verem Verem= speciális sorozattípus Műveletei: Üres, üres?, Verembe, Veremből, tető Üres: Verem üres?(verem): Logikai tető(verem): Elem {NemDef} Verembe(Verem,Elem):
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
Ö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ÁMÍTÁSOK A TÁBLÁZATBAN
SZÁMÍTÁSOK A TÁBLÁZATBAN Az Excelben az egyszerű adatok bevitelén kívül számításokat is végezhetünk. Ezeket a cellákba beírt képletek segítségével oldjuk meg. A képlet: olyan egyenlet, amely a munkalapon
Adatszerkezetek és algoritmusok
2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók
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),
Gyakori elemhalmazok kinyerése
Gyakori elemhalmazok kinyerése Balambér Dávid Budapesti M szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudomány szakirány 2011 március 11. Balambér Dávid (BME) Gyakori
Hierarchikus adatszerkezetek
Hierarchikus adatszerkezetek A szekveniális adatszerkezetek általánosítása. Minden adatelemnek pontosan 1 megelőzője van, de akárhány rákövetkezője lehet, kivéve egy speciális elemet. Fa (tree) Hierarchikus
Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1
Köszönetnyilvánítás Bevezetés Kinek szól a könyv? Elvárt előismeretek A könyv témája A könyv használata A megközelítés alapelvei Törekedjünk az egyszerűségre! Ne optimalizáljunk előre! Felhasználói interfészek
Lekérdezések az SQL SELECT utasítással
Lekérdezések az SQL SELECT utasítással Az SQL SELECT utasítás lehetőségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla Elemi SELECT utasítások SELECT * {[DISTINCT] column expression
Logika es sz am ıt aselm elet I. r esz Logika 1/36
1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika
Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente
Algoritmusok és adatszerkezetek I. 2. előadás
Algoritmusok és adatszerkezetek I. 2. előadás Verem Verem= speciális sorozattípus Műveletei: Üres, üres?, Verembe, Veremből, tető Üres: Verem üres?(verem): Logikai tető(verem): Elem {NemDef} Verembe(Verem,Elem):
A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2016/2017 tanévi Országos özépiskolai Tanulmányi Verseny második fordulójának feladatai INFORMATIA II. (programozás) kategória 1. feladat: Legalább 2 bolygón volt élet (33 pont) Egy
Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk:
8. előadás Ismétlés Dinamikus adatszerkezetek: listák (egyszeresen vagy többszörösen láncolt), fák. Kétfelé ágazó fa: bináris fa Dinamikus adatszerkezetek - önhivatkozó adatstruktúrák: adatok és reájuk
1. Alapok. #!/bin/bash
1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk
Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF
Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:
Kupac adatszerkezet. 1. ábra.
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Chomsky-féle hierarchia
http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
2. Ítéletkalkulus szintaxisa
2. Ítéletkalkulus szintaxisa (4.1) 2.1 Az ítéletlogika abc-je: V 0 V 0 A következő szimbólumokat tartalmazza: ítélet- vagy állításváltozók (az állítások szimbolizálására). Esetenként logikai változónak
Programozás I gyakorlat
Programozás I. - 3. gyakorlat Operátorok, típuskonverziók, matematikai függvények Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24,
Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság
datszerkezetek Bevezetés datszerkezet adatok rendszerének matematikai, logikai modellje elég jó ahhoz, hogy tükrözze a valós kapcsolatokat elég egyszerű a kezeléshez datszerkezet típusok Tömbök lineáris
Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév
Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Az informatika története (ebből a fejezetből csak a félkövér betűstílussal szedett részek kellenek) 1. Számítástechnika
- Levelek: operandusok - Csomópontok: operátorok. Fenti kifejezés: (x+ (y 10)) * (6 / z) Bináris Keresőfa (BST) Példa bináris keresőfára.
Fák Fa definíciója Fa(Tree): csomópontok(nodes) halmaza, amelyeket élek(edges) kötnek össze, és teljesülnek az alábbi feltételek: - létezik egy kitűntetett csomópont: a gyökér (root) - a gyökértől különböző
2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1
2. Rekurzió Egy objektum definícióját rekurzívnak nevezünk, ha a definíció tartalmazza a definiálandó objektumot. Egy P eljárást (vagy függvényt) rekurzívnak nevezünk, ha P utasításrészében előfordul magának
A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai 1. feladat: Repülők (20 pont) INFORMATIKA II. (programozás) kategória Ismerünk városok közötti repülőjáratokat.
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a
ismerd meg! A PC vagyis a személyi számítógép XI. rész
ismerd meg! A PC vagyis a személyi számítógép XI. rész 2. Optikai adattárolás CD-ROM-on A számítógépek másik fontos háttértára a CD-ROM (Compact Disk Read Only Memory). A CD-ROM optikai tárolási elven
file:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
Algoritmusok. Dr. Iványi Péter
Algoritmusok Dr. Iványi Péter Egyik legrégebbi algoritmus i.e. IV század, Alexandria, Euklidész két természetes szám legnagyobb közös osztójának meghatározása Tegyük fel, hogy a és b pozitív egész számok
A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2016/2017 tanévi Országos özépiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató INFORMATIA II. (programozás) kategória 1. feladat: Legalább 2 bolygón volt élet
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.
4. VEREM. Üres: V Verembe: V E V Veremből: V V E Felső: V E
4. VEREM A mindennapokban is találkozunk verem alapú tároló struktúrákkal. Legismertebb példa a névadó, a mezőgazdaságban használt verem. Az informatikában legismertebb veremalkalmazások az eljáráshívások
I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis
I. ALAPALGORITMUSOK 1. Prímszámvizsgálat Adott egy n természetes szám. Írjunk algoritmust, amely eldönti, hogy prímszám-e vagy sem! Egy számról úgy fogjuk eldönteni, hogy prímszám-e, hogy megvizsgáljuk,
Gauss elimináció, LU felbontás
Közelítő és szimbolikus számítások 3. gyakorlat Gauss elimináció, LU felbontás Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 EGYENLETRENDSZEREK 1. Egyenletrendszerek
Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.
Mveletek a relációs modellben A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére. Megfogalmaz egy kérést, amelyben leírja, milyen adatokra van szüksége,
Relációs algebra 1.rész alapok
Relációs algebra 1.rész alapok Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Lekérdezések a relációs modellben 2.4. Egy algebrai lekérdező nyelv, relációs
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról