Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.

Hasonló előadás


Az előadások a következő témára: "Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán."— Előadás másolata:

1 Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán

2 Feladat specifikációja A jól ismert adatstruktúra, amely lehet üres vagy halmaza egy vagy több pontnak, amelyek élekkel kapcsolódnak egymáshoz, kielégítve az alábbi feltételeket. Pontosan egy - gyökérnek nevezett - pont van, amelybe nem érkezik él. A gyökeret kivéve, minden csúcsba pontosan egy él mutat. A gyökérből minden csúcsba pontosan egy irányított élsorozaton át lehet eljutni.

3 Elképzelés Inputfile: kettesével tárol pontokat A csúcsok nem feltétlenül 1-es indexnél kezdődnek, és maradhatnak ki csúcs indexek. Megvalósítás: Asszociatív tároló

4 Az asszociatív tároló Ha nem találkoztunk még a megadott indexszel, akkor hozzávesszük (kiél és beélnél is) a tárolóhoz Ha már szerepelt a csúcs él végpontjában, akkor már nem lehet fa A tárolóban feljegyezzük az éllistát a későbbi bejáráshoz

5 Az asszociatív tároló (folyt.) Számoljuk meg, hogy hány csúcsba nem vezet él. Ha a gráf beolvasásának végén nem nem egyetlen ilyen gyökér van, akkor nem fa. Közben számoljuk az éleket is. Egy N pontú fának pontosan N-1 éle kell legyen. Ha ez nem teljesül, akkor nem fa. A körmentességet még be kell látnunk (mélységi bejárással például)

6 Megvalósítás Szükségünk lesz egy mapra, amely kulcsként használja a csúcs indexét Kell még egy osztály, amiben tároljuk a csúcsokra vonatkozó információkat (a map értéke) Globális változók a megfelelő csúcsok (gyökér) és élek számozására

7 Megvalósítás (folyt.) Még lehet kör a gráfban, így alkalmazzunk egy mélységi bejárást! Az színezzük azokat a csúcsokat, amelyeken már jártunk. Ha már színezet csúcshoz értünk, akkor volt benne irányított kör. Ha nem jutottunk el minden csúcsba, akkor nem összefüggő. A maradék esetekben fát kapunk.

8 Osztály Csúcs Befok Éllista (ki-élek)

9 Megjegyzések C++ implementáció esetén érdemes az STL map sablon típusát használni.


Letölteni ppt "Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán."

Hasonló előadás


Google Hirdetések