Hónap: 2025. február

Gráfok mélységi bejárása

Az előző bejegyzésben gráfok szélességi bejárásával foglalkoztunk. Most gráfok mélységi bejárását (depth first traversal) fogjuk megvalósítani. A mélységi bejárás alapelve: úgy járjuk be a gráfot, hogy egy kiinduló csúcstól kezdve először is az éppen aktuális csúcs szomszédait határozzuk meg, majd ezek közül a még meg nem látogatottakat vesszük nyilvántartásba egy LIFO konténerben, vagyis egy veremben. …

Gráfok mélységi bejárása Read More »

Gráfok szélességi bejárása

Az előző bejegyzésekben (itt és itt) gráfok ábrázolásával és alapimplementációjával foglalkoztunk és ezt bővítettük ki azzal a képességgel, hogy egy adott csúcspontból meg tudjuk határozni a többi csúcshoz vezető legrövidebb utat. Most gráfok bejárásával fogunk foglalkozni. Egy gráf bejárása azt jelenti, hogy egy kiinduló csúcstól, az élek által meghatározott irányokban levő csúcsokat valamilyen logika szerinti …

Gráfok szélességi bejárása Read More »

Legrövidebb út meghatározása gráfokban

Az előző bejegyzésben gráfok ábrázolásával és implementációjával foglalkoztunk. Most arra keressük a megoldást, hogy hogyan lehet meghatározni egy gráf egy adott csúcsából a többi csúcsba vezető legkisebb élsúlyösszegű, vagy más szóval legrövidebb utakat. Ez a kérdés számos, gyakorlatban felmerülő, gráffal modellezhető problémában felmerül. Például utazáskor a távolságban vagy időben legrövidebb út megtalálása, vagy számítógéphálózatokban a …

Legrövidebb út meghatározása gráfokban Read More »

Gráfok megvalósítása

Gráfokat több módon lehet matematikailag ábrázolni. A leggyakoribb reprezentációk a szomszédsági mátrix és a szomszédsági lista. Ezeket mutatja a következő ábra: A szomszédsági mátrixban a gráfban szereplő összes csúcsot (vertex) számba vesszük és megnézzük, hogy egy adott csúcsnak mely más csúcsok a közvetlen szomszédai. A vizsgált csúcsok a mátrix sorai, a szomszédos csúcsokat az oszlopok …

Gráfok megvalósítása Read More »

A super leutánzása, hogy jobban megértsük a használatát

Egy korábbi, „Tudáselmélyítés és gyakorlás kész függvények vagy metódusok leutánzásával” című bejegyzésben arról volt szó, hogy a nyelv használatát és a nyelvi elemek megértését nagyban segítheti, ha megpróbálunk már készen rendelkezésre álló függvényeket, metódusokat vagy osztályokat emulálni, vagyis a funkcionalitásukat saját készítésű kóddal utánozni. Ilyenkor ahhoz, hogy ez sikerüljön, alaposan meg kell értenünk az utánozni …

A super leutánzása, hogy jobban megértsük a használatát Read More »

Dekorálás osztállyal

Függvények dekorálásával korábban már foglalkoztunk a „Mi a függvénydekorátor és mikor használjuk?” című bejegyzésben. A dekorálást leginkább closure függvénnyel megvalósított dekorátorral szokták megvalósítani. Ez a megoldás akkor lesz egy kicsit kényelmetlen, ha paraméteres dekorátorra van szükség. Ilyenkor ugyanis több szinten beágyazott függvényeket kell definiálni, ami kevésbé könnyen átlátható kódot eredményez. Ezen tudunk valamelyest javítani, ha …

Dekorálás osztállyal Read More »

Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 2. rész

Az előző bejegyzésben egy olyan, egyszerű grafikus alkalmazást kezdtünk el felépíteni, amely egy csúcspontjaival definiálható sokszöget egy megadható forgáspont körül, szintén megadható szöggel elforgat, vagy egy kezdő- és végponttal meghatározható vonalra vonatkozóan tengelyesen tükröz. Az előző bejegyzésben az alkalmazás alapfelépítést kezdtük meg számos szükséges metódus definiálásával. Azzal hagytuk abba, hogy a geometriai elemek (pont, sokszög és …

Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 2. rész Read More »

Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 1. rész

Az előző két bejegyzésben (itt és itt) egy pont adott forgáspont körül, megadott szöggel való forgatását és tengelyes tükrözését megvalósító függvények előállításával foglalkoztunk. Ha tudunk egy pontot forgatni vagy tükrözni, akkor lehetőség nyílik egy sokszöget is forgatni, vagy tengelyesen, illetve középpontosan tükrözni, hiszen ilyenkor nem kell mást tenni, mint a sokszög csúcspontjaira elvégezni az említett …

Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 1. rész Read More »

Hogyan valósítsuk meg egy pont tengelyes tükrözését?

Az előző bejegyzésben egy adott pont megadott szöggel történő elforgatásával kapott pont meghatározásával foglalkoztunk, és erre három különböző számítási módszert alkalmazó függvényt definiáltunk. Most egy adott pont tengelyes tükrözéseképpen előálló pont meghatározása lesz a cél. Ahogy a forgatásnál tettük most is két megközelítést alkalmazunk a tükörpont származtatására. Az egyik a koordinátageometriai. Ekkor eltolás, forgatás és …

Hogyan valósítsuk meg egy pont tengelyes tükrözését? Read More »

Hogyan forgassunk el egy adott pontot adott szöggel, adott forgáspont körül?

Grafikus alkalmazásoknál alapvető funkció egy pont adott szöggel való elforgatása, az origó vagy egy megadott forgáspont körül. A forgatás megvalósítását egy olyan függvénnyel oldhatjuk meg, amelynek argumentumai a forgatandó pont, a forgáspont és az elforgatás szöge, visszatérési értéke pedig az elforgatott pont. A kérdés, hogy a függvény törzsében milyen képletet megvalósító kód kerül. Ennek megválaszolásához …

Hogyan forgassunk el egy adott pontot adott szöggel, adott forgáspont körül? Read More »