# Algo
## 1
Adatszerkezetek és típusok: Az adattípus absztrakciós szintjei – a típusspecifikáció és típus fogalma, absztrakt adattípus és megadási módjai, verem ADT axiomatikus és funkcionális leírása, absztrakt adatszerkezet megadása, reprezentáció, aritmetikai és láncolt ábrázolás, az adatszerkezetek osztályozása (több szempont szerint), statikus és dinamikus szerkezetek
## 2
Objektumorientált programozás 1. Osztályok és objektumok, objektum létrehozása, inicializálása, példányváltozó, példánymetódus, osztályváltozó, osztálymetódus, öröklődés, felüldefiniálás, elfedés.
## 3
Objektumorientált programozás 2. Öröklődés, polimorfizmus, dinamikus összekapcsolás (példákkal), absztrakt osztály, a többszörös öröklődés problémái, lehetséges megoldásai.
## 4
Tömbök: definíció ADT és ADS szinten, reprezentáció, sorfolytonos és oszlopfolytonos ábrázolás, cím- és index függvény, speciális mátrixok - tridiagonális, alsó háromszög mátrix, stb. cím és index-függvényei, hézagos mátrixok reprezentációja
## 5
Verem, sor és használatuk: ADT axiomatikus és funkcionális specifikáció, ADS, statikus és dinamikus reprezentáció, műveletek megvalósítása (algoritmusok); Kifejezések lengyelformára alakításának és a lengyelforma kiértékelésének algoritmusai
## 6
Kupacok és prioritásos sor: kupac definíció, reprezentáció, műveletek (algoritmusok!) (beszúrás, törlés, ...); Prioritásos sor: ADT axiomatikus specifikáció, ADS, reprezentáció
## 7
Listák: szekvenciális adatszerkezetek definíciója, statikus és dinamikus reprezentáció, műveletek és megvalósítások algoritmusai (beszúrás, törlés, …); rendezés listával
## 8
Hierarchikus adatszerkezetek és bináris fák: definíciók, általános és bináris fák reprezentációi, bejárásai, műveletei
## 9
Bináris keresőfák: definíció, műveletek (algoritmusok) (beszúrás, törlés, rákövetkező, megelőző, stb. )
## 10
AVL fák definíció, műveletek (AVL fában beszúrás utáni kiegyensúlyozás, törlés utáni kiegyensúlyozás) megfelelő esetszétválasztással
## 11
Piros-fekete fák: definíció, műveletek (piros-fekete fában beszúrás utáni kiegyensúlyozás, törlés utáni kiegyensúlyozás) algoritmusai.
## 12
2-3 fák: fogalma, műveletek (keresés 2-3 fában, beszúrás 2-3 fába, törlés 2-3 fából), műveletek költsége; B fák: definíciója, műveletek (keresés B fában, beszúrás B fába, törlés B fából)
## 13
Hasító táblák: fogalma, közvetlen hozzáférésű táblák, hash függvények (egyszerű egyenletestől univerzálisig), kulcsütközések feloldása: láncolt hashelés, túlcsordulási terület, nyílt címzés.
## 14
A rendezés feladata, definíciója; rendezők osztályozása; Négyzetes rendezés algoritmusa és időigénye (buborék rendezés, beszúró rendezés, maximum kiválasztásos rendezés)
## 15
Quicksort algoritmusa, műveletigénye, pivot választási stratégia jelentősége
## 16
Kupacos rendezés: kupac definíció, reprezentáció, műveletek algoritmusai (beszúrás, törlés, ...), és a rendezési algoritmus a kupaccal, műveletigénye
## 17
Összefuttatásos rendezés algoritmusa, műveletigénye; az összehasonlításos rendezés minimális összehasonlítás száma a legrosszabb esetben (bizonyítás döntési fával); Batcher-féle páros-páratlan összefésüléses rendezés - algoritmus szövegesen, helyességének belátása
## 18
Edényrendezés és radix rendezés: algoritmusa, lépésszáma, szokásos implementációja; leszámláló rendezés algoritmusa, lépésszáma
## 19
Külső rendezések: 2 segédfájlos (4 fájlos), 3 fájlos stb.