73 lines
2.8 KiB
Java
73 lines
2.8 KiB
Java
/*This Java program,finds the transpose of graph matrix.In the mathematical and algorithmic study of graph theory, the converse,[1] transpose[2] or reverse[3] of a directed graph G is another directed graph on the same set of vertices with all of the edges reversed compared to the orientation of the corresponding edges in G. That is, if G contains an edge (u,v) then the converse/transpose/reverse of G contains an edge (v,u) and vice versa.*/
|
|
|
|
import java.util.Scanner;
|
|
|
|
public class TransposeOfGraph
|
|
{
|
|
private int transposeMatrix[][];
|
|
private int numberOfVertices;
|
|
|
|
public TransposeOfGraph(int numberOfVertices)
|
|
{
|
|
this.numberOfVertices = numberOfVertices;
|
|
transposeMatrix = new int[numberOfVertices + 1][numberOfVertices + 1];
|
|
}
|
|
|
|
public int[][] transpose(int adjacencyMatrix[][])
|
|
{
|
|
for (int source = 1; source <= numberOfVertices; source++)
|
|
{
|
|
for (int destination = 1; destination <= numberOfVertices; destination++)
|
|
{
|
|
transposeMatrix[source][destination] = adjacencyMatrix[destination][source];
|
|
}
|
|
}
|
|
return transposeMatrix;
|
|
}
|
|
|
|
public static void main(String... arg)
|
|
{
|
|
int number_of_nodes;
|
|
Scanner scanner = null;
|
|
System.out.println("Enter the number of nodes in the graph");
|
|
scanner = new Scanner(System.in);
|
|
number_of_nodes = scanner.nextInt();
|
|
int adjacency_matrix[][] = new int[number_of_nodes + 1][number_of_nodes + 1];
|
|
int transpose_matrix[][];
|
|
System.out.println("Enter the adjacency matrix");
|
|
for (int i = 1; i <= number_of_nodes; i++)
|
|
for (int j = 1; j <= number_of_nodes; j++)
|
|
adjacency_matrix[i][j] = scanner.nextInt();
|
|
TransposeOfGraph transposeOfGraph = new TransposeOfGraph(number_of_nodes);
|
|
transpose_matrix = transposeOfGraph.transpose(adjacency_matrix);
|
|
System.out.println("The transpose of the given graph");
|
|
for (int i = 1; i <= number_of_nodes; i++)
|
|
System.out.print("\t" + i);
|
|
System.out.println();
|
|
for (int source = 1; source <= number_of_nodes; source++)
|
|
{
|
|
System.out.print(source +"\t");
|
|
for (int destination = 1; destination <= number_of_nodes; destination++)
|
|
{
|
|
System.out.print(transpose_matrix[source][destination] + "\t");
|
|
}
|
|
System.out.println();
|
|
}
|
|
scanner.close();
|
|
}
|
|
}
|
|
|
|
/*
|
|
Enter the number of nodes in the graph
|
|
4
|
|
Enter the adjacency matrix
|
|
0 0 3 0
|
|
2 0 0 0
|
|
0 7 0 1
|
|
6 0 0 0
|
|
The transpose of the given graph
|
|
1 2 3 4
|
|
1 0 2 0 6
|
|
2 0 0 7 0
|
|
3 3 0 0 0
|
|
4 0 0 1 0 |