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:
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
A Guide to the ViewResolver in Spring MVC
Java Program to Implement Bellman-Ford Algorithm
LIKE Queries in Spring JPA Repositories
Lớp lồng nhau trong java (Java inner class)
Lớp LinkedHashMap trong Java
Join and Split Arrays and Collections in Java
Java Program to Implement Best-First Search
Java Program to Implement the MD5 Algorithm
Sử dụng CountDownLatch trong Java
Practical Java Examples of the Big O Notation
Composition, Aggregation, and Association in Java
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Guide to Java 8’s Collectors
Consumer trong Java 8
Java Program to Implement Bit Array
Java Program to Implement Repeated Squaring Algorithm
New Features in Java 9
Spring Boot - Scheduling
Overview of Spring Boot Dev Tools
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Java Program to Implement SimpeBindings API
Java 8 – Powerful Comparison with Lambdas
Spring 5 and Servlet 4 – The PushBuilder
Java Program to Find MST (Minimum Spanning Tree) using Prim’s Algorithm
Spring @Primary Annotation
Tạo số và chuỗi ngẫu nhiên trong Java
Map Interface trong java
Merging Two Maps with Java 8
Java Program to Find Strongly Connected Components in Graphs
Java Program to Implement Caesar Cypher
Spring Boot Annotations