-
August 28th, 2012, 10:52 AM
#1
Error: infinite loop in my code(Depth First Search)
I code the algorithm Depth First Search, but it infinite loop, what did i wrong?
Code:
#include <iostream>
#include <vector>
using std::cout;
using std::cin;
using std::endl;
const int maxx = 20;
void Read_input_from_user(bool grid[][maxx], int vertices)
{
int u, v;
for(int x = 0; x < vertices; ++x)
{
cout << "Enter u : \t";
cin >> u;
u--;
cout << "Enter v : \t";
cin >> v;
v--;
grid[u][v] = true;
grid[v][u] = true;
cout << "---------------------\n";
}
}
void Depth_first_search(bool grid[][maxx], std::vector<int> &trace,
int nodes, int u)
{
for(int v = 0; v < nodes; ++v)
{
if((grid[u][v] == true) && trace[v] == 0)
{
trace[v] = u;
//recursive step
Depth_first_search(grid, trace, nodes, v);
}
}
}
void Trace_result(std::vector<int> &trace, int start, int end, int nodes)
{
cout << "From _nodes" << start + 1 << " you can visit :\n";
for(int v = 0; v < nodes; ++v)
{
if(trace[v] != 0)
{
cout << " _nodes : " << v + 1 << " , ";
}
}
cout << "\n--------------------------------------------\n";
cout << "The path from " << start + 1 << " to " << end + 1 << '\n';
if(trace[end] == 0){
cout << "Unavailable.! to go to from " << end + 1
<< " to -> " << start + 1 << '\n';
}
else{
while(end != start)
{
cout << end + 1 << "<-";
end = trace[end];
}
cout << start + 1 << endl;
}
}
int main()
{
bool grid[maxx][maxx] = { false };
std::vector<int> trace(maxx, 0);
int nodes, vertices;
cout << "Please input the number of Node : \n";
cin >> nodes;
cout << "Please input the number of Vertices : \n";
cin >> vertices;
//Set value for all vertices.
Read_input_from_user(grid, vertices);
//Read the necessary path
int starting_position, finishing_position;
cout << "Please Input the Starting Node : \n";
cin >> starting_position;
cout << "Please Input the Finishing Node : \n";
cin >> finishing_position;
//Decrease to fit with index of C++ start from 0->size-1
starting_position--;
finishing_position--;
Depth_first_search(grid, trace, nodes, starting_position);
Trace_result(trace, starting_position, finishing_position, nodes);
system("pause");
return 0;
}
I'm wrong in: Depth_first_search, is't it?
-
August 28th, 2012, 03:24 PM
#2
Re: Error: infinite loop in my code(Depth First Search)
The first thing I notice is that you have "++v" in the declaration of your For loop. It should be "v++"
I'm just glancing over your code, but that error could be preventing the incrementation of the v variable, which would cause the infinite loop.
Code:
if (Issue.Resolved)
{
ThreadTools.Click();
MarkThreadResolved();
}
-
August 29th, 2012, 07:36 AM
#3
Re: Error: infinite loop in my code(Depth First Search)
Originally Posted by CreganTur
The first thing I notice is that you have "++v" in the declaration of your For loop. It should be "v++"
I'm just glancing over your code, but that error could be preventing the incrementation of the v variable, which would cause the infinite loop.
No, not wrong this, can you test on your VS and tell me something else???
-
August 29th, 2012, 07:37 AM
#4
Re: Error: infinite loop in my code(Depth First Search)
Originally Posted by CreganTur
The first thing I notice is that you have "++v" in the declaration of your For loop. It should be "v++"
I'm just glancing over your code, but that error could be preventing the incrementation of the v variable, which would cause the infinite loop.
No, not wrong this, can you test on your VS and tell me something else???
-
August 29th, 2012, 11:55 AM
#5
Re: Error: infinite loop in my code(Depth First Search)
You posted your question in the C-Sharp Form. This is not C-Sharp code.
-
August 30th, 2012, 06:29 AM
#6
Re: Error: infinite loop in my code(Depth First Search)
Originally Posted by zips
You posted your question in the C-Sharp Form. This is not C-Sharp code.
Oh my god, >"< I'm Sorry, >"<, let me move.
Close please.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|