Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. void algorytmDijkstry(Wierzcholek *s)
  2.     {
  3.         inicjalizuj(s);
  4.         vector<Wierzcholek*> Q = this->wierzcholki;
  5.         int dl=Q.size();
  6.         Wierzcholek *u;
  7.         int j;
  8.         while(!Q.empty())
  9.         {
  10.             u=Q[0];
  11.             j=0;
  12.             dl=Q.size();
  13.             for(int i=1; i<dl; i++)
  14.             {
  15.                 if(Q[i]->odleglosc < u->odleglosc)
  16.                 {
  17.                     u=Q[i];
  18.                     j=i;
  19.                 }
  20.             }
  21.             Q.erase(Q.begin()+j);
  22.  
  23.             for(int i=0; i<u->sasiedzi.size(); i++)
  24.             {
  25.                 if(u->sasiedzi[i]->koniec->odleglosc > (u->odleglosc + u->sasiedzi[i]->waga))
  26.                 {
  27.                     u->sasiedzi[i]->koniec->poprzednik=u;
  28.                     u->sasiedzi[i]->koniec->odleglosc=u->odleglosc + u->sasiedzi[i]->waga;
  29.                 }
  30.             }
  31.         }
  32.     }
  33.  
  34.     void inicjalizuj(Wierzcholek* s)
  35.     {
  36.         for(int i=0; i<this->wierzcholki.size(); i++)
  37.         {
  38.             this->wierzcholki[i]->odleglosc=2147483645;
  39.         }
  40.         s->odleglosc=0;
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement