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 Number of Spanning Trees in a Complete Bipartite Graph
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Use Liquibase to Safely Evolve Your Database Schema
Implementing a Runnable vs Extending a Thread
Java Program to Implement Word Wrap Problem
REST Pagination in Spring
Java Program to Perform Arithmetic Operations on Numbers of Size
Java Program to Implement Nth Root Algorithm
Converting between an Array and a List in Java
Java Program to Construct an Expression Tree for an Prefix Expression
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Java Program to Implement LinkedBlockingQueue API
Java Program to Convert a Decimal Number to Binary Number using Stacks
Handle EML file with JavaMail
Java Program to Implement Uniform-Cost Search
Java Program to Implement Direct Addressing Tables
Create Java Applet to Simulate Any Sorting Technique
Java Program to Implement EnumMap API
Bootstrapping Hibernate 5 with Spring
Java Program to Implement Unrolled Linked List
Getting Started with Forms in Spring MVC
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Java Program to Generate a Graph for a Given Fixed Degree Sequence
LinkedHashSet trong Java hoạt động như thế nào?
Apache Commons Collections OrderedMap
A Guide to Spring Boot Admin
Từ khóa this và super trong Java
Java Program to Create a Random Linear Extension for a DAG
Creating a Generic Array in Java
Tìm hiểu về Web Service
Spring Boot Integration Testing with Embedded MongoDB
Java – Create a File