Kezdőoldal » Számítástechnika » Programozás » Hogyan lehetséges egy gráfot...

Hogyan lehetséges egy gráfot leprogramozni C-ben?

Figyelt kérdés

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



2018. okt. 21. 20:17
1 2
 11/12 A kérdező kommentje:
Király vagy! Nagyon köszi!
2018. okt. 22. 12:31
 12/12 anonim ***** válasza:

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:

[link]


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.

2018. okt. 22. 22:37
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!