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:
Integer Constant Pool trong Java
Upload and Display Excel Files with Spring MVC
Running Spring Boot Applications With Minikube
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Zipping Collections in Java
Deploy a Spring Boot App to Azure
Java Program to Print only Odd Numbered Levels of a Tree
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Java – Convert File to InputStream
Java Program to Find Nearest Neighbor Using Linear Search
The StackOverflowError in Java
A Guide to EnumMap
Spring Boot - Service Components
Guide to Spring Cloud Kubernetes
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Guide to the Java TransferQueue
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Guide To CompletableFuture
DistinctBy in the Java Stream API
A Guide to the Java LinkedList
Converting Between Byte Arrays and Hexadecimal Strings in Java
Java Program to Perform Optimal Paranthesization Using Dynamic Programming
File Upload with Spring MVC
Java 8 – Powerful Comparison with Lambdas
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
New Features in Java 12
A Guide to WatchService in Java NIO2
Summing Numbers with Java Streams
Annotation trong Java 8
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java Program to implement Dynamic Array
Ignore Null Fields with Jackson