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. If this relationship is represented by a list, list is known as incidence list.
Here is the source code of the Java Program to Represent Graph Using Incidence List. 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 list
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.LinkedList;
import java.util.Scanner;
public class Represent_Graph_Incidence_List
{
private Map<Integer, List<Integer>> incidenceList;
private int v;
public Represent_Graph_Incidence_List(int vertices)
{
v = vertices;
incidenceList = new HashMap<Integer, List<Integer>>();
for (int i = 1; i <= v; i++)
incidenceList.put(i, new LinkedList<Integer>());
}
public void setEdge(int to, int from, int edge_number)
{
List<Integer> slist = incidenceList.get(to);
slist.add(edge_number);
List<Integer> dlist = incidenceList.get(from);
dlist.add(edge_number);
}
public List<Integer> getEdge(int vertex)
{
return incidenceList.get(vertex);
}
public static void main(String args[])
{
int v, e, count = 1, to, from, edgeNumber;
Scanner sc = new Scanner(System.in);
Represent_Graph_Incidence_List glist;
try
{
System.out.println("Enter the number of vertices: ");
v = sc.nextInt();
System.out.println("Enter the number of edges: ");
e = sc.nextInt();
glist = new Represent_Graph_Incidence_List(v);
System.out
.println("Enter the edges in the graph : <edgenumber> <to> <from>");
while (count <= e)
{
edgeNumber = sc.nextInt();
to = sc.nextInt();
from = sc.nextInt();
glist.setEdge(to, from, edgeNumber);
count++;
}
System.out
.println("The Incidence List Representation of the graph is: ");
System.out.println("Vertex EdgeNumber");
for (int vertex = 1; vertex <= v; vertex++)
{
System.out.print(vertex + "\t:");
List<Integer> edgeList = glist.getEdge(vertex);
for (int j = 1;; j++)
{
if (j != edgeList.size())
System.out.print(edgeList.get(j - 1) + "\t");
else
{
System.out.print(edgeList.get(j - 1));
break;
}
}
System.out.println();
}
}
catch (Exception E)
{
System.out.println("Something went wrong");
}
sc.close();
}
}
Output:
$ javac Represent_Graph_Incidence_List.java $ java Represent_Graph_Incidence_List Enter the number of vertices: 5 Enter the number of edges: 5 Enter the edges in the graph : <edgenumber> <to> <from> 1 1 2 2 2 4 3 5 4 4 4 3 5 5 1 The Incidence List Representation of the graph is: Vertex EdgeNumber 1 :1 5 2 :1 2 3 :4 4 :2 3 4 5 :3 5
Related posts:
Mảng (Array) trong Java
A Guide to JUnit 5
Mockito and JUnit 5 – Using ExtendWith
Functional Interface trong Java 8
Hướng dẫn Java Design Pattern – Visitor
Java Program to Implement String Matching Using Vectors
Guide to Selenium with JUnit / TestNG
Simple Single Sign-On with Spring Security OAuth2
Java Program to Construct an Expression Tree for an Infix Expression
Guide to Guava Multimap
Exception Handling in Java
Class Loaders in Java
Lớp Collections trong Java (Collections Utility Class)
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Introduction to Using FreeMarker in Spring MVC
Java Program to Implement RoleList API
Giới thiệu Java 8
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Spring Boot - Enabling Swagger2
Working With Maps Using Streams
Spring Boot Annotations
Java Program to Implement Hash Tables Chaining with Binary Trees
Java Program to Implement Segment Tree
Java Program to Emulate N Dice Roller
Guide to the Java TransferQueue
Converting a List to String in Java
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
Java toString() Method
Exploring the New Spring Cloud Gateway
Java Program to Implement Coppersmith Freivald’s Algorithm
Một số nguyên tắc, định luật trong lập trình
Java Program to Implement Karatsuba Multiplication Algorithm