Kolejka, stworzenie mapy miast
Ostatnio zmodyfikowano 2014-03-16 11:59
Kot Temat założony przez niniejszego użytkownika |
Kolejka, stworzenie mapy miast » 2014-03-04 12:06:47 Czy za pomocą kolejki mogę stworzyć mapę miast o zadanych wymiarach?
Np. wpisuje, że ma być 4x4 i tworzy się takie coś:
A----B----C----D | | | | E----F----G----H | | | | I----J----K----L | | | | M----N----O----P
Chodzi mi w sumie głównie o to, jak się w ogóle za coś takiego zabrać. W poleceniu mam podpowiedź, żeby użyć kolejki, ale jakoś mi się to nie łączy. I chcę się upewnić, czy na pewno w dobrym miejscu szukam rozwiązania. |
|
akwes |
» 2014-03-04 12:55:47 Ścieżkę (ścieżkę przejścia grafu) masz przechowywać w kolejce czy mapę miast? Czy nic nie wiesz a po prostu masz użyć kolejki? Poczytaj o standardowych kontenerach (strukturach danych) bo widać, że o kolejkach nie wiesz nic (do czego sam się przyznałeś). To co przedstawiłeś to graf. Graf można przechowywać dowolnie. Kwestia czy to będzie miało sens i będzie wygodne w używaniu. Poczytaj o postaci macierzowej grafów. Wtedy będziesz mógł je trzymać w dwuwymiarowej tablicy. |
|
Kot Temat założony przez niniejszego użytkownika |
» 2014-03-04 18:58:40 Chyba ma być dokładnie tak jak mówisz, że ścieżka przejścia grafu powinna być w kolejce przechowywana, a graf chyba najsensowniej będzie przechować w dwuwymiarowej dynamicznej tablicy. Tylko mam problem z wyświetleniem mapy razem z drogami. Bo na razie wyświetlam po prostu tak: for( int i = 0; i < w; i++ ) { cout << endl; for( int j = 0; j < k; j++ ) cout << tab[ i ][ j ] << " "; }
Chyba że już teraz to zły pomysł? |
|
akwes |
» 2014-03-04 21:44:59 A co jest z tym wyświetlaniem nie tak? Jeżeli chodzi Ci o "grafikę" to zawsze możesz drukować dodatkowe "---" czy "|". Może sobie poprawić efekt sterując manipulatorami strumienia wejściowego (aby było zawsze ładne).
Aczkolwiek jak dla mnie wyświetlanie grafu w takiej formie jest niejasne. Dużo fajniej prezentuje się wspomniana wcześniej macierz sąsiedztwa.
Co więcej, w przypadku macierzy sąsiedztwa dla grafów skierowanych dużo prościej będzie je wypisać ponieważ wagi krawędzi w ASCII ART będą słabe. Zapewne Twój graf jest skierowany (albo będzie w dalszych częściach zadania) bo szukanie drogi między miastem A a miastem B w przypadku grafu nieskierowanego jest nudne i niepotrzebne. Natomiast na obliczenie najkrótszej drogi w grafie skierowanym jest dużo fajnych algorytmów, które właśnie operują na macierzy sąsiedztwa. |
|
Kot Temat założony przez niniejszego użytkownika |
» 2014-03-16 11:59:58 Dobrze, dziękuję za wskazówki. Zamykam temat. |
|
« 1 » |