Link to home
Start Free TrialLog in
Avatar of Beebutter
Beebutter

asked on

How do I fix this infinite loop in Dijkstra's algorithm?

I have the following cpp file to compute dijkstra algorithm . I get a infinite loop at the condition check while(cur != V)
Please help me resolving  this. The attached dij.in file has the following input format
V E
v v w
&
where V is # of vertices, E is # of edges, followed by E lines where v are vertex numbers and w is the associated edge weight.
dij.in.txt
Dijkstra.cpp.txt
Avatar of itsmeandnobodyelse
itsmeandnobodyelse
Flag of Germany image

>>>>                  if (visited[i] == 0 && priolist[i] < tempmin) {
>>>>                        cur = i;

The cur is changed only wnen a specific condition becomes true. You need a while condition which becomes true for all cases.

for example, define the 'int i = 0;' before the while loop 'while (i <= V)'. And change the for loop to

      for (i = 1; i <= V; i++)
ASKER CERTIFIED SOLUTION
Avatar of itsmeandnobodyelse
itsmeandnobodyelse
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial