Program To Implement Depth First Search(DFS)
Algorithm:
- Place the starting node s on the top of the stack.
- If the stack is empty, return failure and stop.
- If the element on the stack is goal node g, return success and stop. Otherwise,
- Remove and expand the first element , and place the children at the top of the stack.
- Return to step 2.ExampleSource Code
#include<stdio.h>#include<conio.h>inta[20][20],reach[20],n;voiddfs(intv){inti;reach[v]=1;for(i=1;i<=n;i++)if(a[v][i] && !reach[i]){printf("\n %d->%d",v,i);dfs(i);}}voidmain(){inti,j,count=0;clrscr();printf("\n Enter number of vertices:");scanf("%d",&n);for(i=1;i<=n;i++){reach[i]=0;for(j=1;j<=n;j++)a[i][j]=0;}printf("\n Enter the adjacency matrix:\n");for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&a[i][j]);dfs(1);printf("\n");for(i=1;i<=n;i++){if(reach[i])count++;}if(count==n)printf("\n Graph is connected");elseprintf("\n Graph is not connected");getch();}
No comments:
Post a Comment