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:

Finding Max/Min of a List or Collection
Java Program to Implement Solovay Strassen Primality Test Algorithm
The StackOverflowError in Java
Spring’s RequestBody and ResponseBody Annotations
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
Java Program to Construct K-D Tree for 2 Dimensional Data
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
The Spring @Controller and @RestController Annotations
Java Program to Find Minimum Element in an Array using Linear Search
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Apache Camel with Spring Boot
Java Program to Implement Iterative Deepening
Java Program to Implement LinkedTransferQueue API
Thao tác với tập tin và thư mục trong Java
A Guide to JPA with Spring
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java Program to find the peak element of an array using Binary Search approach
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Java Program to Implement Uniform-Cost Search
Java Program to Solve Tower of Hanoi Problem using Stacks
Java Program to Perform Partial Key Search in a K-D Tree
A Guide to Spring Boot Admin
Java Program to Perform Cryptography Using Transposition Technique
Java Program to Implement Control Table
Custom JUnit 4 Test Runners
Java Program to Implement Lloyd’s Algorithm
Spring RestTemplate Error Handling
Java Program to Implement Horner Algorithm
Java Program to Implement PrinterStateReasons API
Spring Data MongoDB – Indexes, Annotations and Converters
Configure a RestTemplate with RestTemplateBuilder
Get and Post Lists of Objects with RestTemplate