Depth-First Traversal

Previous Next


Program

#include “ stdio.h “

#include “ conio.h “

#define max 5

void dfs(int adj[][max],int visited[],int start)

{

int stack[max],top=-1,i;

printf("%c-",start+65);

visited[start]=1;

stack[++top]=start;

while(top!=-1)

{

start=stack[top];

for(i=0;i <>

{

if(adj[start][i]&&visited[i]==0)

{

stack[++top]=i;

printf("%c-",i+65);

visited[i]=1;

break;

}

}

if(i==max)

top--;

}

}

void main()

{

int adj[max][max]={{0,0,1,1,0},

{0,0,0,0,0},

{0,1,0,1,1},

{0,0,0,0,1},

{0,0,0,1,0}};

int visited[max]={0};

clrscr();

printf("\n\t\t\tDEPTH-FRIST SEARCH TRAVERSAL");

printf("\n\t\t\t--------------------------------------------------");

printf("\n\n");

printf("DFS Traverse:");

dfs(adj,visited,0);

getch();

}

Output

DFS Traverse: A-C-B-D-E-