Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Dijkstra::glupia(int start, int end) {
- reset();
- set<int> stos;
- stos.insert(start);
- bool visited[255];
- for (int i = 0; i < 255; i++) {
- visited[i] = false;
- }
- char litery[] = { 'a', 'b', 'c', 'd', 'e' };
- bool stop = false;
- while(!stos.empty() && !stop) {
- cout << "---------------------" << endl;
- int u = *(stos.begin());
- stos.erase(stos.begin());
- cout << "u=" << litery[u] << endl;
- for (int j = 0; j < nodes[u].size(); j++) {
- if (visited[nodes[u][j].index] && visited[nodes[u][j].index * 2]) continue;
- cout << "nodes[u][j].index=" << litery[nodes[u][j].index];
- if (nodes[u][j].index == end) {
- cout << " znaleziono!" << endl;
- continue;
- }
- else {
- stos.insert(nodes[u][j].index);
- }
- cout << endl;
- }
- if (!stos.empty()) {
- set<int> temp = stos;
- int p = *(temp.begin());
- temp.erase(temp.begin());
- bool child = false;
- cout << "p=" << litery[p] << endl;
- bool stop = false;
- while(!temp.empty()) {
- int d = *(temp.begin());
- temp.erase(temp.begin());
- cout << "Szukam " << litery[p] << " wsrod dzieci " << litery[d];
- for (int j = 0; j < nodes[d].size(); j++) {
- if (p == nodes[d][j].index) {
- cout << " : TAK" << endl;
- child = true;
- stop = true;
- break;
- }
- }
- if (!child)
- cout << " : NIE" << endl;
- if (stop) break;
- }
- visited[u] = !child;
- if (visited[u]) {
- cout << "visited[" << litery[u] << "]=true" << endl;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement