Advertisement
Pi0trek

Diijkstra

Jun 12th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 19.83 KB | None | 0 0
  1. #include<iostream>
  2. #include"Polaczenie.h"
  3. #include"Przystanek.h"
  4. #include<vector>
  5. #include<queue>
  6. #include<sstream>
  7.  
  8. using namespace std;
  9.  
  10. struct Kontener  //aktu³alne po³orzenie ,wszystkie po³¹czenia, czas oczekiwania, godzina startu plus czas jazdy
  11. {
  12.     bool operator>(const Kontener k) const // operator z którego korzystamy do porównywania
  13.     {
  14.         if (czas == k.czas)
  15.             return linia > k.linia;  //je¿eli czasy s¹ takie same to nadaj prirorytet ni¿szemu numerem lini
  16.         else if (czas > k.czas)
  17.             return true;
  18.         else
  19.             return false;
  20.     }
  21.  
  22.     bool operator<(const Kontener k) const // perator z którego korzystamy do porównywania
  23.     {
  24.         if (czas == k.czas)
  25.             return linia < k.linia;
  26.         else if (czas < k.czas)
  27.             return true;
  28.         else
  29.             return false;
  30.     }
  31.  
  32.     int czas;
  33.     int linia;
  34.     Przystanek *docelowy;
  35.     vector<Polaczenie*> trasa;
  36.     vector<int> czasyOczekiwan;
  37. };
  38.  
  39. class Compare
  40. {
  41. public:
  42.     bool operator() (const Kontener k1, const Kontener k2) const
  43.     {
  44.         return k1 > k2; //komparator dla ustalania priorytetów dodania do kolejki prioretetowej
  45.     }
  46. };
  47.  
  48.  
  49. Kontener dijkstra(Przystanek *startowy, Przystanek *koncowy, string godzinaStartu, int iloscPrzystankow) //definicja funkcji  realizuj¹cej algorytm Djikstra
  50. {
  51.     Przystanek *start;
  52.     Przystanek *stop;
  53.     vector<bool> odwiedzone;
  54.     priority_queue<Kontener, vector<Kontener>, Compare > kolejka;
  55.     int czasStartu;
  56.  
  57.     start = startowy;
  58.     stop = koncowy;
  59.  
  60.     //time: HH:MM
  61.     string tmpH = "", tmpM = "";
  62.     tmpH += godzinaStartu[0];
  63.     tmpH += godzinaStartu[1];
  64.  
  65.     tmpM += godzinaStartu[3];
  66.     tmpM += godzinaStartu[4];
  67.  
  68.     czasStartu = atoi(tmpH.c_str()) * 60 + atoi(tmpM.c_str()); // konwesja czasu na iloœæ minut od 00:00  czas przechowujemy w iloœci minut jaki up³yn¹ od pónocy
  69.  
  70.     //*********************************************************
  71.  
  72.     for (int i = 0; i < iloscPrzystankow; i++)  // dodawanie do wektora  informacj¹ ze nie odwiedzilismy przystanku
  73.         odwiedzone.push_back(false);
  74.  
  75.     for (int i = 0; i < start->polaczenia.size(); i++) //z przystanku startowego dodaje wszystkie po³¹czenia do kolejki
  76.     {
  77.         Kontener k;
  78.         k.czas = czasStartu; //ustaw pocz¹tkowy czas na wyznaczony czas strtu
  79.         int czasOczekiwania = start->polaczenia[i].obliczCzasDojazdu(czasStartu); //oblicz najkóutszy czas po jakim znajdziesz siê na kolejnym przystanku  
  80.         k.czasyOczekiwan.push_back(czasOczekiwania - start->polaczenia[i].czasJazdy);// // oblicz czas oczekiwania na jablizszy odjazd z wybranego po³¹czenia
  81.         k.czas += czasOczekiwania;// aktualizujemy czas po skorzystaniu z tego po³¹czenia ( jest to aktualny czas dal programu )
  82.         k.linia = start->polaczenia[i].linia;//informacja o lini któr¹ zossta³a odbyte po³¹czenie
  83.         k.docelowy = start->polaczenia[i].docelowy;//informacja gdzie dojechaliœmy
  84.         k.trasa.push_back(&start->polaczenia[i]);//oddajemy do trasy po³¹czenie z którego skorzystaliœmy
  85.         kolejka.push(k);//dodaje po³¹czenie do kolejki a komparator decyduje o jego miejscu w niej
  86.     }
  87.  
  88.     odwiedzone[start->liczbaPorzadkowa] = true; // ustawiamy ¿e odwiedziliœmy przystanek startowy
  89.  
  90.     Kontener k;//trasa
  91.     while (!kolejka.empty())//tak d³ugo jak nie sprawdzê wszystkich po³¹czeñ którymi siê nie wracam do odwiedzonych miejsc
  92.     {
  93.         k = kolejka.top();//kopjujemy pod ka po³¹czenie z najwy¿szym priorytecie
  94.         kolejka.pop();
  95.  
  96.         if (!odwiedzone[k.docelowy->liczbaPorzadkowa])
  97.         {
  98.             odwiedzone[k.docelowy->liczbaPorzadkowa] = true; //usatawaim przystank w którym jestem jako odwiedzony porzez mianê w wektor z null na true
  99.            
  100.             if (k.docelowy == stop) // sprawdzamy czy po³¹czenie prowadzi do przystanku docelowego jesli tak koñczymy
  101.                 break;
  102.  
  103.             for (int i = 0; i < k.docelowy->polaczenia.size(); i++)//dodajemy wszystkie po³¹czenia do do kolejnego przystnku które prowadz¹ do wczeœniej nie odwiedzonych przystanków
  104.             {
  105.                 if (!odwiedzone[k.docelowy->polaczenia[i].docelowy->liczbaPorzadkowa])
  106.                 {
  107.                     Kontener tmp;
  108.                     tmp.czas = k.czas; // kopiujê czas z poprzednieg po³¹czenia //czas kidy znalaz³em sie na nakolejnym  przystanku
  109.                    
  110.                     int czasOczekiwania = k.docelowy->polaczenia[i].obliczCzasDojazdu(tmp.czas);
  111.                     tmp.czasyOczekiwan = k.czasyOczekiwan;
  112.                     tmp.czasyOczekiwan.push_back(czasOczekiwania - k.docelowy->polaczenia[i].czasJazdy);
  113.                     tmp.czas += czasOczekiwania;
  114.                     tmp.linia = k.docelowy->polaczenia[i].linia;
  115.                     tmp.docelowy = k.docelowy->polaczenia[i].docelowy;
  116.                     tmp.trasa = k.trasa;// dodanie histroi trasy
  117.                     tmp.trasa.push_back(&k.docelowy->polaczenia[i]);
  118.  
  119.                     kolejka.push(tmp);//dodaje po³¹czenie do kolejki a komparator decyduje o jego miejscu w niej
  120.                 }
  121.             }
  122.         }
  123.     }
  124.  
  125.  
  126.     //*********************************************************
  127.  
  128.     odwiedzone.clear(); //wyczyszczenie wektora odwiedzonych przystanków
  129.     while (!kolejka.empty())//opró¿nienie kolejki z pozosta³ych elementów
  130.         kolejka.pop();
  131.  
  132.     return k;
  133. }
  134.  
  135.  
  136.  
  137. string trasaToString(Przystanek *start, string godzinaStartu, Kontener k)
  138. {
  139.     //time: HH:MM
  140.     string tmpH = "", tmpM = "";
  141.     tmpH += godzinaStartu[0];
  142.     tmpH += godzinaStartu[1];
  143.    
  144.     tmpM += godzinaStartu[3];
  145.     tmpM += godzinaStartu[4];
  146.  
  147.     stringstream ss;
  148.     ss << "Wyznaczanie najszybszej trasy z przystanku " << start->nazwa;
  149.     ss << "\ndo przystanku " << k.docelowy->nazwa << " o godzinie " << tmpH << ":" << tmpM << endl << endl << endl;
  150.     ss << "Godzina " << tmpH << ":" << tmpM << ", przystanek " << start->nazwa << endl;
  151.  
  152.     for (int i = 0; i < k.trasa.size(); i++)
  153.     {
  154.         if (i > 0)
  155.         {
  156.             if (k.trasa[i - 1]->linia == k.trasa[i]->linia)
  157.             {
  158.                 ss << "Kontynuuj jazde ta sama linia. (" << k.czasyOczekiwan[i] << " minut czasu oczekiwania)" << endl;
  159.             }
  160.             else
  161.             {
  162.                 ss << "Czas oczekiwania na polaczenie: " << k.czasyOczekiwan[i] << "minut" << endl;
  163.             }
  164.         }
  165.         else
  166.         {
  167.             ss << "Czas oczekiwania na polaczenie: " << k.czasyOczekiwan[i] << "minut" << endl;
  168.         }
  169.        
  170.         ss << "Czas jazdy linia nr " << k.trasa[i]->linia << " wynosi: " << k.trasa[i]->czasJazdy << " minut" << endl;
  171.  
  172.         int tmp = atoi(tmpM.c_str()) + k.trasa[i]->czasJazdy + k.czasyOczekiwan[i];
  173.         if (tmp >= 60)
  174.         {
  175.             if (atoi(tmpH.c_str()) + 1 < 10)
  176.                 tmpH = "0";
  177.             else
  178.                 tmpH = "";
  179.             tmpH += to_string(atoi(tmpH.c_str()) + 1);
  180.  
  181.             if (tmp % 60 < 10)
  182.                 tmpM = "0";
  183.             else
  184.                 tmpM = "";
  185.             tmpM += to_string(tmp % 60);
  186.         }
  187.         else
  188.         {
  189.             if (tmp < 10)
  190.                 tmpM = "0";
  191.             else
  192.                 tmpM = "";
  193.  
  194.             tmpM += to_string(tmp);
  195.         }
  196.  
  197.         ss << endl;
  198.  
  199.         if (i == k.trasa.size() - 1)
  200.             ss << endl << "Godzina " << tmpH << ":" << tmpM << ", Koniec trasy: przystanek " << k.trasa[i]->docelowy->nazwa << endl;
  201.         else
  202.             ss << "Godzina " << tmpH << ":" << tmpM << ", przystanek " << k.trasa[i]->docelowy->nazwa << endl;
  203.     }
  204.  
  205.     tmpH = "", tmpM = "";
  206.     tmpH += godzinaStartu[0];
  207.     tmpH += godzinaStartu[1];
  208.  
  209.     tmpM += godzinaStartu[3];
  210.     tmpM += godzinaStartu[4];
  211.  
  212.     ss << "Czas pokonania trasy: " << (k.czas - (atoi(tmpH.c_str()) * 60 + atoi(tmpM.c_str()))) / 60 << " godzin, " << (k.czas - (atoi(tmpH.c_str()) * 60 + atoi(tmpM.c_str()))) % 60 << " minut" << endl;
  213.  
  214.     return ss.str();
  215. }
  216.  
  217. int main()
  218. {
  219.     Przystanek krzekowo("Krzekowo", 0);
  220.     Przystanek klonowica("Klonowica", 1);
  221.     Przystanek zawadzkiego_kosciol("Zawadzkiego kosciol", 2);
  222.     Przystanek zawadzkiego("Zawadzkiego", 3);
  223.     Przystanek romera("Romera", 4);
  224.     Przystanek szafera("Szafera", 5);
  225.     Przystanek uni_lubelskiej_szpital("Uni Lubelskiej Szpital", 6);
  226.     Przystanek uni_lubelskiej("Uni Lubelskiej", 7);
  227.     Przystanek zajezdnia_pogodno("Zajezdnia Pogodno", 8);
  228.     Przystanek spacerowa("Spacerowa", 9);
  229.     Przystanek zolnierska("Zolnierska", 10);
  230.     Przystanek wernychory("Wernychory", 11);
  231.     //Krzzekowo
  232.     Polaczenie p1(&klonowica, 60, 1, new std::string[13]{ "14:09","14:24","14:39","14:54","15:07","15:19","15:31","15:43","15:55","16:08","16:23","16:38","16:53" }, 13);
  233.     krzekowo.polaczenia.push_back(p1);
  234.  
  235.     Polaczenie p2(&klonowica, 74, 2, new std::string[8]{ "14:02","14:26","14:51","15:15","15:39","16:03","16:27","16:51" }, 8);
  236.     krzekowo.polaczenia.push_back(p2);
  237.  
  238.     Polaczenie p3(&zolnierska, 7, 1, new std::string[15]{ "14:03","14:15","14:27","14:39","14:51","15:03","15:15","15:27","15:39","15:51","16:03","16:15","16:27","16:39","16:51" }, 15);
  239.     krzekowo.polaczenia.push_back(p3);
  240.  
  241.     Polaczenie p4(&zolnierska, 5, 1, new std::string[15]{ "14:09","14:21","14:33","14:45","14:57", "15:09","15:21","15:33","15:45","15:57","16:09","16:21","16:33","16:45","16:57" }, 15);
  242.     krzekowo.polaczenia.push_back(p4);
  243.  
  244.     Polaczenie p5(&zolnierska, 4, 1, new std::string[8]{ "14:10","14:34","14:58","15:22","15:46","16:10","16:34","16:58" }, 8);
  245.     krzekowo.polaczenia.push_back(p5);
  246.  
  247.     Polaczenie p6(&romera, 75, 3, new std::string[27]{ "14:02","14:08","14:14","14:20","14:26","14:32","14:39","14:46","14:53","15:00","15:07","15:14","15:21","15:28","15:35","15:42","15:49","15:56","16:03","16:10","16:17","16:24","16:31","16:38","16:45","16:52","16:59" }, 27);
  248.     krzekowo.polaczenia.push_back(p6);
  249.     //Klonowica
  250.  
  251.     Polaczenie p7(&wernychory, 75, 1, new std::string[26]{ "14:04","14:10","14:16","14:22","14:28","14:34","14:40","14:47","14:54","15:01","15:09","15:16","15:23","15:30","15:37","15:44","15:51","15:58","16:05","16:12","16:19","16:26","16:33","16:39","16:46","16:53" }, 26);
  252.     klonowica.polaczenia.push_back(p7);
  253.  
  254.     Polaczenie p8(&zawadzkiego_kosciol, 75, 2, new std::string[26]{ "14:06","14:13","14:20","14:27","14:34","14:40","14:46","14:52","14:59","15:05","15:11","15:17","15:23","15:31","15:38","15:45","15:52","15:59","16:06","16:13","16:21","16:28","16:35","16:42","16:49","16:56" }, 26);
  255.     klonowica.polaczenia.push_back(p8);
  256.  
  257.     Polaczenie p9(&wernychory, 53, 1, new std::string[14]{ "14:05","14:13","14:20","14:35","14:50", "15:05","15:17","15:29","15:41","15:53","16:06","16:21","16:36","16:51" }, 14);
  258.     klonowica.polaczenia.push_back(p9);
  259.  
  260.     Polaczenie p10(&zawadzkiego_kosciol, 53, 2, new std::string[13]{ "14:14","14:29","14:44", "15:00","15:12","15:24","15:36","15:48","16:01","16:16","16:31","16:46","16:59" }, 13);
  261.     klonowica.polaczenia.push_back(p10);
  262.  
  263.     Polaczenie p11(&wernychory, 60, 1, new std::string[14]{ "14:11","14:26","14:34","14:41","14:55", "15:08","15:20","15:32","15:44","15:58","16:11","16:26","16:41","16:56" }, 14);
  264.     klonowica.polaczenia.push_back(p11);
  265.  
  266.     Polaczenie p12(&uni_lubelskiej_szpital, 60, 3, new std::string[13]{ "14:10","14:25","14:40","14:55", "15:08","15:20","15:32","15:44","15:56","16:09","16:24","16:39","16:54" }, 13);
  267.     klonowica.polaczenia.push_back(p12);
  268.  
  269.     Polaczenie p13(&wernychory, 80, 1, new std::string[7]{ "14:11","14:35","14:59","15:23","15:47","16:11","16:35" }, 7);
  270.     klonowica.polaczenia.push_back(p13);
  271.  
  272.     Polaczenie p14(&zawadzkiego_kosciol, 80, 2, new std::string[8]{ "14:09","14:33","14:58","15:22","15:46","16:10","16:34","16:58" }, 8);
  273.     klonowica.polaczenia.push_back(p14);
  274.  
  275.     Polaczenie p15(&wernychory, 74, 1, new std::string[8]{ "14:04","14:28","14:53","15:17","15:41","16:05","16:29","16:53" }, 8);
  276.     klonowica.polaczenia.push_back(p15);
  277.  
  278.     Polaczenie p16(&krzekowo, 74, 3, new std::string[7]{ "14:15","14:39","15:03","15:27","15:51","16:15","16:39" }, 7);
  279.     klonowica.polaczenia.push_back(p16);
  280.  
  281.     //Wernychory
  282.  
  283.     Polaczenie p17(&klonowica, 75, 1, new std::string[26]{ "14:05","14:12","14:19","14:26","14:33","14:39","14:45","14:51","14:58","15:04","15:10","15:16","15:22","15:30","15:37","15:44","15:51","15:58","16:05","16:12","16:20","16:27","16:34","16:41","16:48","16:55" }, 26);
  284.     wernychory.polaczenia.push_back(p17);
  285.  
  286.     Polaczenie p18(&klonowica, 53, 1, new std::string[13]{ "14:13","14:28","14:43","14:59","15:11", "15:23","15:35","15:47","16:00","16:15","16:30","16:45","16:58" }, 13);
  287.     wernychory.polaczenia.push_back(p18);
  288.  
  289.     Polaczenie p19(&zolnierska, 60, 2, new std::string[14]{ "14:12","14:27","14:35","14:42","14:56", "15:09","15:21","15:33","15:45","15:59","16:12","16:27","16:42","16:57" }, 14);
  290.     wernychory.polaczenia.push_back(p19);
  291.  
  292.     Polaczenie p20(&klonowica, 80, 1, new std::string[8]{ "14:08","14:32","14:57","15:21","15:45","16:09","16:33","16:56" }, 8);
  293.     wernychory.polaczenia.push_back(p20);
  294.  
  295.     Polaczenie p21(&klonowica, 74, 1, new std::string[7]{ "14:14","14:38","15:02","15:26","15:50","16:14","16:38" }, 7);
  296.     wernychory.polaczenia.push_back(p21);
  297.  
  298.     Polaczenie p22(&zolnierska, 7, 1, new std::string[15]{ "14:06","14:18","14:30","14:42","14:54","15:06","15:18","15:30","15:42","15:54","16:06","16:18","16:30","16:42","16:54" }, 15);
  299.     wernychory.polaczenia.push_back(p22);
  300.  
  301.     Polaczenie p23(&zolnierska, 5, 1, new std::string[15]{ "14:06","14:18","14:13","14:42","14:54", "15:06","15:18","15:30","15:42","15:54","16:06","16:18","16:30","16:42","16:54" }, 15);
  302.     wernychory.polaczenia.push_back(p23);
  303.  
  304.     Polaczenie p24(&zolnierska, 4, 1, new std::string[8]{ "14:02","14:23","14:47","15:11","15:35","15:59","16:23","16:47" }, 8);
  305.     krzekowo.polaczenia.push_back(p24);
  306.  
  307.     //zolnierska
  308.  
  309.     Polaczenie p25(&krzekowo, 60, 1, new std::string[14]{ "14:12","14:27","14:35","14:42","14:56", "15:09","15:21","15:33","15:45","15:59","16:12","16:27","16:42","16:57" }, 14);
  310.     zolnierska.polaczenia.push_back(p25);
  311.  
  312.     Polaczenie p26(&krzekowo, 7, 1, new std::string[15]{ "14:07","14:19","14:31","14:43","14:55","15:07","15:19","15:31","15:43","15:55","16:07","16:19","16:31","16:43","16:55" }, 15);
  313.     zolnierska.polaczenia.push_back(p26);
  314.  
  315.     Polaczenie p27(&wernychory, 7, 1, new std::string[15]{ "14:04","14:16","14:28","14:40","14:52","15:04","15:16","15:28","15:40","15:52","16:04","16:16","16:28","16:40","16:52" }, 15);
  316.     zolnierska.polaczenia.push_back(p27);
  317.  
  318.     Polaczenie p28(&krzekowo, 5, 1, new std::string[15]{ "14:01","14:13","14:25","14:37","14:49", "15:01","15:13","15:25","15:37","15:49", "16:01","16:13","16:25","16:37","16:49" }, 15);
  319.     zolnierska.polaczenia.push_back(p28);
  320.  
  321.     Polaczenie p29(&wernychory, 5, 1, new std::string[15]{ "14:10","14:22","14:34","14:46","14:58", "15:10","15:22","15:34","15:46","15:58","16:10","16:22","16:34","16:46","16:58" }, 15);
  322.     zolnierska.polaczenia.push_back(p29);
  323.  
  324.     Polaczenie p30(&krzekowo, 4, 1, new std::string[8]{ "14:03","14:24","14:48","15:12","15:36","16:00","16:24","16:48" }, 8);
  325.     zolnierska.polaczenia.push_back(p30);
  326.  
  327.     Polaczenie p31(&wernychory, 4, 1, new std::string[8]{ "14:11","14:35","14:59","15:23","15:47","16:11","16:35","16:59" }, 8);
  328.     zolnierska.polaczenia.push_back(p31);
  329.  
  330.     //Romera
  331.  
  332.     Polaczenie p32(&krzekowo, 75, 4, new std::string[26]{ "14:05","14:12","14:19","14:26","14:33","14:40","14:46","14:52","14:58","15:05","15:11","15:17","15:23","15:29","15:38","15:45","15:52","15:59","16:06","16:13","16:20","16:28","16:35","16:42","16:49","16:56", }, 26);
  333.     romera.polaczenia.push_back(p32);
  334.  
  335.     Polaczenie p33(&szafera, 75, 1, new std::string[26]{ "14:04","14:10","14:16","14:22","14:28","14:34","14:41","14:48","14:55","15:03","15:10","15:17","15:24","15:31","15:38","15:45","15:52","15:59","16:06","16:13","16:20","16:27","16:33","16:40","16:47","16:54", }, 26);
  336.     romera.polaczenia.push_back(p33);
  337.  
  338.     //Szafera
  339.  
  340.     Polaczenie p34(&romera, 75, 1, new std::string[26]{ "14:04","14:11","14:18","14:25","14:32","14:39","14:45","14:51","14:57","15:04","15:10","15:16","15:22","15:28","15:37","15:44","15:51","15:58","16:05","16:12","16:19","16:27","16:34","16:41","16:48","16:55", }, 26);
  341.     szafera.polaczenia.push_back(p34);
  342.  
  343.     Polaczenie p35(&zawadzkiego, 75, 2, new std::string[26]{ "14:05","14:11","14:17","14:23","14:29","14:35","14:42","14:49","14:56","15:04","15:11","15:18","15:25","15:32","15:39","15:46","15:53","16:00","16:07","16:14","16:21","16:28","16:33","16:41","16:48","16:55", }, 26);
  344.     szafera.polaczenia.push_back(p35);
  345.  
  346.     //Zawadzkiego
  347.  
  348.     Polaczenie p36(&zawadzkiego_kosciol, 75, 1, new std::string[27]{ "14:01","14:07","14:13","14:19","14:25","14:31","14:37","14:44","14:51","14:58","15:06","15:13","15:20","15:27","15:34","15:41","15:48","15:55","16:02","16:09","16:16","16:23","16:30","16:36","16:43","16:50","16:57" }, 27);
  349.     zawadzkiego.polaczenia.push_back(p36);
  350.  
  351.     Polaczenie p37(&szafera, 75, 2, new std::string[26]{ "14:03","14:10","14:17","14:24","14:31","14:38","14:44","14:50","14:56","15:03","15:09","15:15","15:21","15:27","15:35","15:42","15:49","15:56","16:03","16:10","16:17","16:25","16:32","16:39","16:46","16:53", }, 26);
  352.     zawadzkiego.polaczenia.push_back(p37);
  353.  
  354.     Polaczenie p38(&zawadzkiego_kosciol, 53, 2, new std::string[14]{ "14:01","14:09","14:16","14:31","14:46", "15:01","15:13","15:25","15:37","15:49","16:02","16:17","16:32","16:47" }, 14);
  355.     zawadzkiego.polaczenia.push_back(p38);
  356.  
  357.     Polaczenie p39(&zajezdnia_pogodno, 53, 2, new std::string[13]{ "14:02","14:17","14:32","14:47","15:04", "15:16","15:28","15:40","15:52","16:05","16:20","16:35","16:50" }, 13);
  358.     zawadzkiego.polaczenia.push_back(p39);
  359.  
  360.     Polaczenie p40(&zawadzkiego_kosciol, 80, 1, new std::string[8]{ "14:08","14:32","14:56","15:20","15:44","16:08","16:32","16:57" }, 8);
  361.     zawadzkiego.polaczenia.push_back(p40);
  362.  
  363.     Polaczenie p41(&spacerowa, 80, 2, new std::string[7]{ "14:13","14:37","15:02","15:26","15:50","16:14","16:38" }, 7);
  364.     zawadzkiego.polaczenia.push_back(p41);
  365.  
  366.     //Zawadzkiego KOSC
  367.  
  368.     Polaczenie p42(&zawadzkiego, 75, 2, new std::string[27]{ "14:01","14:08","14:15","14:22","14:29","14:36","14:42","14:48","14:54","15:01","15:07","15:13","15:19","15:25","15:33","15:40","15:47","15:54","16:01","16:08","16:15","16:23","16:30","16:37","16:44","16:51","16:58" }, 27);
  369.     zawadzkiego_kosciol.polaczenia.push_back(p42);
  370.  
  371.     Polaczenie p43(&klonowica, 75, 2, new std::string[27]{ "14:02","14:08","14:14","14:20","14:26","14:32","14:38","14:45","14:52","14:59","15:07","15:14","15:21","15:28","15:35","15:42","15:49","15:56","16:03","16:10","16:17","16:24","16:31","16:37","16:44","16:51","16:58" }, 27);
  372.     zawadzkiego_kosciol.polaczenia.push_back(p43);
  373.  
  374.     Polaczenie p44(&zawadzkiego, 53, 2, new std::string[13]{ "14:01","14:16","14:31","14:46", "15:02","15:14","15:26","15:38","15:25","16:03","16:18","16:33","16:48" }, 13);
  375.     zawadzkiego_kosciol.polaczenia.push_back(p44);
  376.  
  377.     Polaczenie p45(&klonowica, 53, 2, new std::string[14]{ "14:03","14:11","14:18","14:33","14:48", "15:03","15:15","15:27","15:39","15:51","16:04","16:19","16:34","16:49" }, 14);
  378.     zawadzkiego_kosciol.polaczenia.push_back(p45);
  379.  
  380.     Polaczenie p46(&zawadzkiego, 80, 2, new std::string[8]{ "14:11","14:35","15:00","15:24","15:48","16:12","16:36","16:59" }, 8);
  381.     zawadzkiego_kosciol.polaczenia.push_back(p46);
  382.  
  383.     Polaczenie p47(&klonowica, 80, 2, new std::string[8]{ "14:09","14:33","14:57","15:21","15:45","16:09","16:33","16:58" }, 8);
  384.     zawadzkiego_kosciol.polaczenia.push_back(p47);
  385.  
  386.     //uni lubelskiej szpital
  387.  
  388.  
  389.     Polaczenie p48(&klonowica, 60, 2, new std::string[13]{ "14:09","14:24","14:39","14:53", "15:06","15:18","15:30","15:42","15:56","16:09","16:24","16:39","16:54" }, 13);
  390.     uni_lubelskiej_szpital.polaczenia.push_back(p48);
  391.  
  392.     Polaczenie p49(&uni_lubelskiej, 60, 2, new std::string[13]{ "14:12","14:27","14:42","14:57", "15:11","15:23","15:35","15:47","15:59","16:12","16:27","16:42","16:56" }, 13);
  393.     uni_lubelskiej_szpital.polaczenia.push_back(p49);
  394.  
  395.     //uni lubelskiej
  396.  
  397.     Polaczenie p50(&uni_lubelskiej_szpital, 60, 2, new std::string[13]{ "14:07","14:22","14:37","14:51", "15:04","15:16","15:28","15:40","15:54","16:07","16:22","16:37","16:52" }, 13);
  398.     uni_lubelskiej.polaczenia.push_back(p50);
  399.  
  400.     Polaczenie p51(&zajezdnia_pogodno, 53, 2, new std::string[13]{ "14:13","14:28","14:43","14:58","15:10", "15:22","15:34","15:46","15:59","16:14","16:29","16:44","16:58" }, 13);
  401.     uni_lubelskiej.polaczenia.push_back(p51);
  402.  
  403.     //zajezdnia pogodno
  404.  
  405.     Polaczenie p52(&zawadzkiego, 53, 2, new std::string[13]{ "14:13","14:28","14:43","14:58","15:10", "15:22","15:34","15:46","15:59","16:14","16:29","16:44","16:58" }, 13);
  406.     zajezdnia_pogodno.polaczenia.push_back(p52);
  407.  
  408.     Polaczenie p53(&uni_lubelskiej, 53, 2, new std::string[13]{ "14:04","14:19","14:34","14:49","15:06", "15:18","15:30","15:42","15:54","16:07","16:22","16:37","16:52" }, 13);
  409.     zajezdnia_pogodno.polaczenia.push_back(p53);
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.     Kontener k = dijkstra(&zolnierska, &szafera, "16:13", 12);
  417.  
  418.     cout << trasaToString(&zolnierska, "16:13", k);
  419.  
  420.     getchar();
  421.     return 0;
  422. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement