0
    private static Scanner scanner;
    import java.util.Scanner;


public class Dfs {



    public static void dfs(int a[][],int m[],int i,int n)
    {

       int j;
    m[i]=1;
 for ( j = 0; j < n && i<n ; j++ )
       {
          if ( a[i][j] == 1 && m[j]==0)       
          {
             dfs(a,m,j,n);     
          }
       }
 }  
    public static void main(String[] args) {
    int n;
    int sum=0;
    int counter=0;

scanner = new Scanner(System.in);
n=scanner.nextInt();
int [][] graph=new int[n][n];
int i,j;
int m[]=new int[n];

for(i=0;i<n;i++){
    m[i]=0;
}
for(i=0;i<n;i++){
    for(j=0;j<n;j++){
        graph[i][j]=scanner.nextInt();

    }
}

        }
    }

        for(i=0;i<n;i++){
            if(m[i]==0){
                counter++;
            dfs(graph, m,i, n);


            }
        }

    System.out.println(counter);

    }

}

}

i want this programfirst print number of the components of the graph topology and then at other line the tops of in each component topology for example:
input:
3
0 1 0
1 0 0
0 0 0
output:
2
1 2
3

2
Contributors
2
Replies
21
Views
2 Years
Discussion Span
Last Post by oooooo1
0

honestly, I don't entirely understand what you are trying to do.
but besides that: what is your actual question?

0

the program first get the number of the vertex of the graph and the Adjacency Matrix Representation of the graph then print the number of the components of the graph topology and then in other lines print the vertices in each
component

This article has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.