Hogyan lehetséges egy gráfot leprogramozni C-ben?
Valami olyasmire gondolok, hogy lerajzolok most a papírra egy gráfot, a csúcsokat mind megjelölöm az ABC betűivel, és úgy implementálom, hogy az a programom azt tudja majd csinálni, hogy ki írja, jelenleg melyik csúcson állok; kiírja, hogy jobbra és/vagy balra és/vagy fel és/vagy le, tudok elmozdulni onnan a pontról; majd az irány kiválasztása után a megfelelő irányba eső pontnak a betűjelét írja ki a program, és ez megy egészen addig míg a felhasználó ki nem nyomja a programot, vagy el nem ér egy végső pontot.
Egy kis segítségnek nagyon örülnék, de ha tudtok küldeni valami doksit, oldalt ahol érthetően elmagyarázzák, az is megfelelő. :)
// Nem kell grafikus megvalósítás
Egy tömbbel, aminek minden eleme az adott indexű csúcs szomszédjait adja meg irányspecifikusan.
Ha N csúcsod van, akkor N*4 elemű lesz a tömb
Kevés él esetén lehet más megoldás is, de ebben az esetben ez e legjobb.
-1, -1, -1, 1
-1, -1, 2, -1
-1, 3, -1, -1
0, -1, -1, -1
Fa adatstruktúra - itt látható egy két irányú megvalósítása:
ezt kell kibővíteni négy irányúvá (kvaternáris fa).
#4
Ha jól értelmezem, a -1 azt jelenti, hogy nem fut él?
Szóval ilyenkor egy olyan gráf van leírva, ahol irányítottak az élek?
Igen, itt irányítottak az élek, kétirányú bejárással így néz ki:
-1, -1, 0, 1
-1, 1, 2, -1
2, 3, -1, -1
0, -1, -1, 3
Egy példa a kvaternáris fára:
Köszi az eddigi válaszokat!
Nagyon köszi a kódért! Elkezdem vizsgálgatni, meg a linket is amit előbb küldtél.
Már csak arra kell rájönnöm, hogy .txt fájlból hogyan kell ilyen gráfot beolvastatni :D
Gondolatébresztőként példa a bináris fa fájlban tárolására:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!