DFS:Depth First Search is a Method to Traverse a Tree and find the Required Element in a Tree.This Algorithm is referred to as Depth First Search because is Spans the Tree in Various Levels or Depths to Find an Element.

DFS uses a Stack to Insert the Elements of a Tree as it is spanned. Several Variables are used to Indicate whether a Node is Visited ,Unvisited or in Processing State.The Complete Java Source Code to Implement DFS is provided below

DFS uses a Stack to Insert the Elements of a Tree as it is spanned. Several Variables are used to Indicate whether a Node is Visited ,Unvisited or in Processing State.The Complete Java Source Code to Implement DFS is provided below

```
import java.io.*;
import java.lang.*;
/** Compose
* @author www.c-madeeasyblogspot.com
*/
class stack
{
int a[]=new int[20],top=0;
void push(int p)
{
a[top]=p;
top++;
}
int pop()
{
int h;
top--;
h=a[top];
return h;
}
}
public class DFS {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
stack mystack=new stack();
int n=0;
String[] label=new String[10];
int x;
int status[]=new int[10];
int am[][]=new int[50][50];
int a[]=new int[10];
DataInputStream get=new DataInputStream(System.in);
try
{
System.out.println("Enter the no of vertices");
n=Integer.parseInt(get.readLine());
System.out.println("Enter labels");
for(int i=0;i<n;i++)
{
label[i]=get.readLine();
}
System.out.println("Enter AM");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
{
am[i][j]=Integer.parseInt(get.readLine());
status[i]=1;
}
}
mystack.push(0);
status[0]=2;
x=mystack.pop();
a[0]=x;
status[0]=3;
for(int i=1;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(am[x][j]==1&&status[j]==1)
{
mystack.push(j);
status[j]=2;
}
}
x=mystack.pop();
a[i]=x;
status[x]=3;
}
System.out.println("DFS is");
for(int i=0;i<n;i++)
{
int m=a[i];
System.out.print(" "+label[m]);
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
```

WJJHAEUVSUQD

Good Job!

What's "Enter labels" and "Enter AM"?

Those are specific values for the Tree Nodes

y is the status for?

not getting what to write in AM

--chetan

i think AM means Adjacent matrix.

could you do dfs using stacks with pointers in c?

Great and Useful Article.

Java Online Course

Java Online Training

Java EE training

Java Course in Chennai

Java Training in Chennai

Java Training Institutes in Chennai

Java Interview Questions

Java Interview Questions