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:
Spring Boot - OAuth2 with JWT
Spring Data – CrudRepository save() Method
Java Program to Implement Sorted Vector
HandlerAdapters in Spring MVC
Java Program to Implement LinkedList API
Spring Boot - CORS Support
How to Use if/else Logic in Java 8 Streams
Convert Character Array to String in Java
Hướng dẫn Java Design Pattern – Iterator
Introduction to the Functional Web Framework in Spring 5
Java Program to Implement LinkedBlockingDeque API
Hướng dẫn Java Design Pattern – Intercepting Filter
Circular Dependencies in Spring
Quick Guide to @RestClientTest in Spring Boot
Spring Boot Security Auto-Configuration
Custom Cascading in Spring Data MongoDB
Spring’s RequestBody and ResponseBody Annotations
Java Program to Implement Interpolation Search Algorithm
Java Program to Check Whether Topological Sorting can be Performed in a Graph
A Guide to BitSet in Java
Form Validation with AngularJS and Spring MVC
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Immutable ArrayList in Java
REST Web service: Basic Authentication trong Jersey 2.x
Giới thiệu về Stream API trong Java 8
Introduction to Spring MVC HandlerInterceptor
Các kiểu dữ liệu trong java
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Spring’s RequestBody and ResponseBody Annotations
Convert XML to JSON Using Jackson
Limiting Query Results with JPA and Spring Data JPA
Spring Boot - Eureka Server