Microsoft Interview Question
Program ManagersTeam: Windows Azure
Country: United States
Interview Type: In-Person
#include<stdio.h>
#define m 8
void dfs(int i,int (*a)[8],int *v,int n)
{
int j=0;
v[i]=1;
printf(" %d",i+1);
while(j<n)
{
if(a[i][j]==1&&v[j]==0)
dfs(j,a,v,n);
j++;
}
return;
}
int main()
{
int i,n,j,a[m][m],v[m]={0};
printf("how many vertex you got for graph");
scanf("%d",&n);
printf("ok now insert your value but remember insert '0' if no edge exist");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
dfs(0,a,v,n);
}
if i am not wrong, Pre-order travel does the job.
- Nitin September 26, 2012Since pre-order we go to Leftmost Node from left subtree to rightmost node from right sub tree. DFS.