# 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)
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
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
>>>>                  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++)
Commented:
>>>> You need a while condition which becomes true for all cases.
Of course the while condition should become false to prevent from infinite loop. Or, you need a break in the loop.

Experts Exchange Solution brought to you by