This is a java program to represent graph as a incidence list. The incidence matrix of G is a n × m matrix (b_{ij}), where n and m are the numbers of vertices and edges respectively, such that b_{ij} = 1 if the vertex v_i and edge x_j are incident and 0 otherwise.
Here is the source code of the Java Program to Represent Graph Using Incidence Matrix. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to represent graph as a incidence matrix
import java.util.Scanner;
public class Represent_Graph_Incidence_Matrix
{
private final int rows;
private final int cols;
private int[][] incidence_matrix;
public Represent_Graph_Incidence_Matrix(int v, int e)
{
rows = v;
cols = e;
incidence_matrix = new int[rows + 1][cols + 1];
}
public void makeEdge(int to, int from, int edge, int edge_number)
{
try
{
incidence_matrix[to][edge_number] = edge;
incidence_matrix[from][edge_number] = edge;
}
catch (ArrayIndexOutOfBoundsException index)
{
System.out.println("The vertices does not exists");
}
}
public int getEdge(int edge_number, int v)
{
try
{
return incidence_matrix[edge_number][v];
}
catch (ArrayIndexOutOfBoundsException index)
{
System.out.println("The vertices does not exists");
}
return -1;
}
public static void main(String args[])
{
int v, e, count = 1, to = 0, from = 0, edge_number;
Scanner sc = new Scanner(System.in);
Represent_Graph_Incidence_Matrix graph;
try
{
System.out.println("Enter the number of vertices: ");
v = sc.nextInt();
System.out.println("Enter the number of edges: ");
e = sc.nextInt();
graph = new Represent_Graph_Incidence_Matrix(v, e);
System.out.println("Enter the edges: <edge_number> <to> <from>");
while (count <= e)
{
edge_number = sc.nextInt();
to = sc.nextInt();
from = sc.nextInt();
graph.makeEdge(to, from, 1, edge_number);
count++;
}
System.out.println("The incidence matrix for the given graph is: ");
System.out.print(" ");
for (int i = 1; i <= v; i++)
System.out.print(i + " ");
System.out.println();
for (int i = 1; i <= v; i++)
{
System.out.print(i + " ");
for (int j = 1; j <= v; j++)
System.out.print(graph.getEdge(i, j) + " ");
System.out.println();
}
}
catch (Exception E)
{
System.out.println("Somthing went wrong");
}
sc.close();
}
}
Output:
$ javac Represent_Graph_Incidence_Matrix.java $ java Represent_Graph_Incidence_Matrix Enter the number of vertices: 4 Enter the number of edges: 5 Enter the edges: <edge_number> <to> <from> 1 1 2 2 2 3 3 3 4 4 4 1 1 1 3 The incidence matrix for the given graph is: 1 2 3 4 1 1 0 0 1 2 1 1 0 0 3 1 1 1 0 4 0 0 1 1
Related posts:
Hashing a Password in Java
Concrete Class in Java
JUnit5 @RunWith
Custom JUnit 4 Test Runners
The Order of Tests in JUnit
Java – Write to File
HttpClient Basic Authentication
Java Program to Perform Deletion in a BST
Tránh lỗi NullPointerException trong Java như thế nào?
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Implement TreeMap API
Spring Boot - Twilio
Java InputStream to Byte Array and ByteBuffer
How to Set TLS Version in Apache HttpClient
Java Program to Represent Graph Using 2D Arrays
Guide to Selenium with JUnit / TestNG
Java Program to Implement Gaussian Elimination Algorithm
How to Read HTTP Headers in Spring REST Controllers
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Java Program to Find Inverse of a Matrix
Hướng dẫn Java Design Pattern – Observer
Configure a RestTemplate with RestTemplateBuilder
Một số ký tự đặc biệt trong Java
Introduction to Eclipse Collections
Java Program to Implement Floyd-Warshall Algorithm
Java Program to find the peak element of an array using Binary Search approach
Java Program to Implement Bresenham Line Algorithm
Phân biệt JVM, JRE, JDK
Java Program to Implement Randomized Binary Search Tree
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect