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:
Spring Data JPA and Null Parameters
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Chuyển đổi giữa các kiểu dữ liệu trong Java
Using JWT with Spring Security OAuth
Hashtable trong java
Java Program to Perform String Matching Using String Library
Java Program to Perform Insertion in a BST
Java Program to Implement CountMinSketch
Getting the Size of an Iterable in Java
Immutable ArrayList in Java
So sánh HashSet, LinkedHashSet và TreeSet trong Java
XML-Based Injection in Spring
Java String to InputStream
HttpClient Timeout
Convert Time to Milliseconds in Java
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Guide to Mustache with Spring Boot
Java Program to Check if a Matrix is Invertible
Getting Started with Custom Deserialization in Jackson
Request a Delivery / Read Receipt in Javamail
Mapping a Dynamic JSON Object with Jackson
Overview of the java.util.concurrent
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Hướng dẫn Java Design Pattern – Chain of Responsibility
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Constructor Injection in Spring with Lombok
JUnit5 Programmatic Extension Registration with @RegisterExtension
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Java Program to Implement Aho-Corasick Algorithm for String Matching