Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void algorytmDijkstry(Wierzcholek *s)
- {
- inicjalizuj(s);
- vector<Wierzcholek*> Q = this->wierzcholki;
- int dl=Q.size();
- Wierzcholek *u;
- int j;
- while(!Q.empty())
- {
- u=Q[0];
- j=0;
- dl=Q.size();
- for(int i=1; i<dl; i++)
- {
- if(Q[i]->odleglosc < u->odleglosc)
- {
- u=Q[i];
- j=i;
- }
- }
- Q.erase(Q.begin()+j);
- for(int i=0; i<u->sasiedzi.size(); i++)
- {
- if(u->sasiedzi[i]->koniec->odleglosc > (u->odleglosc + u->sasiedzi[i]->waga))
- {
- u->sasiedzi[i]->koniec->poprzednik=u;
- u->sasiedzi[i]->koniec->odleglosc=u->odleglosc + u->sasiedzi[i]->waga;
- }
- }
- }
- }
- void inicjalizuj(Wierzcholek* s)
- {
- for(int i=0; i<this->wierzcholki.size(); i++)
- {
- this->wierzcholki[i]->odleglosc=2147483645;
- }
- s->odleglosc=0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement