DFS function, can you guys tell me what is the wrong with this code?
Posted
by danielDhobbs
on Stack Overflow
See other posts from Stack Overflow
or by danielDhobbs
Published on 2010-05-26T06:14:11Z
Indexed on
2010/05/26
6:21 UTC
Read the original article
Hit count: 518
c
|assignment
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");
}
}
© Stack Overflow or respective owner