Hi Guys,

I asked an initial question about how to implement an all possible pathway algorithm, and I was told that I should look into DFS or BFS. I managed to program a [semi?]working module for DFS but I am still unsure as how to proceed about reconstructing the path.

Right now my input is a simple square. My starting point is 0 and the end point is 3

0--3

| |

| |

1--2

What I want is the program to output 0--1--2--3 AND 0--3 in preferably two separate lines.

So far I have the following code(

when I run this I get the following output: 0 3 2 1Code:#include "stdio.h" #define N 4 int q[N],top=-1,front=-1,rear=-1,stack[N]; int vis[N]={0}; int a[N][N]={ {0,1,0,1}, {1,0,1,0}, {0,1,0,1}, {1,0,1,0} }; void dfs(int s,int n); void push(int item); int pop(); int main() { dfs(0,N); return 0; } void dfs(int s,int n) { int i,k; push(s); vis[s]=1; k=pop(); if(k!=N) printf(" %d ",k); while(k!=N) { for(i=0;i< N;i++) if((a[k][i]!=0)&&(vis[i]==0)) { push(i); vis[i]=1; } k=pop(); if(k!=N) printf(" %d ",k); } // for(i=0;i< N;i++) // if(vis[i]==0) // dfs(i,n); } void push(int item) { if(top==N) printf("Stack overflow "); else stack[++top]=item; } int pop() { int k; if(top==-1) return(N); else { k=stack[top--]; return(k); } }

Any Ideas as how to go proceed next? I am completely confused. :/

I am bit of a C noob so I could use a little detailed help. The program is part of a sub routine that I am writing for my research project.

Thanks for all the help guys!