DFS function, can you guys tell me what is the wrong with this code?
- by danielDhobbs
can you guys tell me what is the wrong with this code?
it is not working with
1 2
1 3
1 4
2 5
2 6
2 7
2 8
3 8
3 9
4 10
1 - 4 - 10 and stop
DFS function
void Is_Connected(graphType* g, int v){ //function to define the graph is connected or not
int i=0;
g_node* w;
top = NULL;
g -> visited[v] = TRUE;
push(v);
printf("%d", v);
while (top != NULL) {
w = g -> adjList[v];
while (w) {
if (!g -> visited[w -> vertex]) {
push(w -> vertex);
g -> visited[w -> vertex] = TRUE;
printf("->%d", w->vertex);
v = w -> vertex;
w = g -> adjList[v];
}
else {
w = w -> link;
}
}
i++;
v = pop();
}
if (i == (g -> x)-1){ //number of vertices = number of vertetices pass through
puts("\nIs_Connected() result : yes");
}
else{
puts("\nIs_Connected() result : no");
}
}