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
Elfogtam egy nem privát jellegű üzenetet:
"Az üzenet témája: Gráf
Az üzenet szövege: Szia!
Egy 9 csúcsú gráfot próbáltam én is összerakni, a te mintaprogramoddal.
Azt hiszem mindent úgy csináltam ahogy azt kellene, de hibaüzenetet dob ki. A gráfot így alkottam meg:
https://pastebin(pont)com/gyP68MV9
De az utolsó előtti sorban hibaüzenetet kapok.
Read Access Violation root->right was nullptr"
Nos,
három hiba van az egésszel ( [link] ):
1. Nincs létrehozva az 1. csúcs (lásd: #8-as hozzászólásban közzétett forráskód 84. sorát) - de feltételezem ez csak lemaradt
2. Az általad közölt forráskód 10. sorában az 1->2 kapcsolatot újradefiniálod a 2->5 helyett - helyesen:
root->right->bottom = root->bottom->right; //2->5
3. az általad közölt forráskód 12. sorában levő 8->9 definiálnád újra a 6->9 helyett, pláne úgy, hogy a célig vezető 1->2->5->6->9 útvonal nem létezik (2->5, 6->9) - helyesen:
root->bottom->right->right->bottom = root->bottom->bottom->right->right;
De hogy leegyszerűsítsük, minden csúcsot elnevezünk, így könnyebb rájuk hivatkozni:
Nagyobb térképnél érdemes a csúcsok tárolását valamilyen dinamikus tömbben, listában, esetleg asszociatív tömbben (lásd: PHP), könyvtárban (lásd: Python), térképben (lásd Java) megtenni - ezeket viszont C-ben neked kell létrehozni.
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!