Java Program to Describe the Representation of Graph using Incidence List

This Java program,to describe the representation of graph using incident list. Vertices and edges are stored as records or objects. Each vertex stores its incident edges, and each edge stores its incident vertices. This data structure allows the storage of additional data on vertices and edges.

Here is the source code of the Java program to describe the representation of graph using incident list. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
 
public class IncidentList
{
    private Map<Integer, List<Integer>> incidentList;
    private int numberOfVertices;
 
    public IncidentList(int numberOfVertices)
    {
        this.numberOfVertices = numberOfVertices;
        incidentList = new HashMap<Integer, List<Integer>>();
 
        for (int vertex = 1; vertex <= numberOfVertices; vertex++)
            incidentList.put(vertex, new LinkedList<Integer>());
    }
 
    public void setEdge(int sourcevertex, int destinationvertex, int edgeNumber)
    {
        List<Integer> slist = incidentList.get(sourcevertex);
        slist.add(edgeNumber);
        return;
    }
 
    public List<Integer> getEdge(int vertex)
    {
        return incidentList.get(vertex);
    }
 
    public void printIncidentList()
    {
        System.out.println("Vertex   EdgeNumber");
        for (int vertex = 1; vertex <= numberOfVertices; vertex++)
        {
            System.out.print(vertex + ":");
            List<Integer> edgeList = 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();
        }
    }
 
    public static void main(String... arg)
    {
        int numberOfVertices, numberOfEdges;
        int source, destination, edgeNumber;
        int edgeCount = 1;
 
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter the number of vertices");
        numberOfVertices = scanner.nextInt();
 
        IncidentList incidentList = new IncidentList(numberOfVertices);
        System.out.println("Enter the number of edges");
        numberOfEdges = scanner.nextInt();
 
        System.out.println("Enter the edges format : <edgeNumber> <source> <destination>");
        while (edgeCount <= numberOfEdges)
        {
            edgeNumber = scanner.nextInt();
            source = scanner.nextInt();
            destination = scanner.nextInt();
            incidentList.setEdge(source, destination, edgeNumber);
            edgeCount++;
        }
 
        System.out.println("\nThe Incident List is ");
        incidentList.printIncidentList();
        scanner.close();
    }
}
$javac IterativeDeepening.java
$java IterativeDeepening
Enter the number of vertices
5
Enter the number of edges
5
Enter the edges format : <edgeNumber> <source> <destination>
1 1 2
2 2 4 
3 5 4
4 4 3
5 5 1
 
The Incident List is 
Vertex   EdgeNumber
  1    : 1 5
  2    : 1 2
  3    : 4
  4    : 2 3 4
  5    : 3 5

Related posts:

Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Spring Boot - Servlet Filter
Các nguyên lý thiết kế hướng đối tượng – SOLID
Jackson – Marshall String to JsonNode
Java Program to Implement Vector API
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Java Program to Find Maximum Element in an Array using Binary Search
Một số ký tự đặc biệt trong Java
Introduction to the Java ArrayDeque
Java Program to Find Nearest Neighbor Using Linear Search
Spring REST API + OAuth2 + Angular (using the Spring Security OAuth legacy stack)
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Java Program to Implement ConcurrentSkipListMap API
Java Program to Implement Shunting Yard Algorithm
Jackson – Unmarshall to Collection/Array
Java Program to Implement Maximum Length Chain of Pairs
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Java – Write an InputStream to a File
ClassNotFoundException vs NoClassDefFoundError
Intro to the Jackson ObjectMapper
Hướng dẫn Java Design Pattern – Observer
Java Program to Implement D-ary-Heap
Converting Between a List and a Set in Java
Java Program to Perform the Shaker Sort
New in Spring Security OAuth2 – Verify Claims
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Java Program to implement Associate Array
Spring Cloud AWS – Messaging Support
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
Java Program to Implement the String Search Algorithm for Short Text Sizes
Giới thiệu Java 8