Java Program to Represent Graph Using Adjacency List

This is a java program to represent graph as a adjacency list. Each node will have a linked list consisting of node to which it is connected.

Here is the source code of the Java Program to Represent Graph Using Adjacency 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 adjacency list
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
 
public class Represent_Graph_Adjacency_List 
{
    private Map<Integer, List<Integer>> adjacencyList;
 
    public Represent_Graph_Adjacency_List(int v) 
    {
        adjacencyList = new HashMap<Integer, List<Integer>>();
        for (int i = 1; i <= v; i++)
            adjacencyList.put(i, new LinkedList<Integer>());
    }
 
    public void setEdge(int to, int from) 
    {
        if (to > adjacencyList.size() || from > adjacencyList.size())
            System.out.println("The vertices does not exists");
 
        List<Integer> sls = adjacencyList.get(to);
        sls.add(from);
        List<Integer> dls = adjacencyList.get(from);
        dls.add(to);
    }
 
    public List<Integer> getEdge(int to) 
    {
        if (to > adjacencyList.size()) 
        {
            System.out.println("The vertices does not exists");
            return null;
        }
        return adjacencyList.get(to);
    }
 
    public static void main(String args[]) 
    {
        int v, e, count = 1, to, from;
        Scanner sc = new Scanner(System.in);
        Represent_Graph_Adjacency_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_Adjacency_List(v);
 
            System.out.println("Enter the edges in the graph : <to> <from>");
            while (count <= e) 
            {
                to = sc.nextInt();
                from = sc.nextInt();
 
                glist.setEdge(to, from);
                count++;
            }
 
            System.out
                    .println("The Adjacency List Representation of the graph is: ");
 
            for (int i = 1; i <= v; i++) 
            {
                System.out.print(i + "->");
                List<Integer> edgeList = glist.getEdge(i);
                for (int j = 1;; j++) 
                {
                    if (j != edgeList.size())
                        System.out.print(edgeList.get(j - 1) + " -> ");
                    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_Adjacency_List.java
$ java Represent_Graph_Adjacency_List
 
Enter the number of vertices: 
4 5 
Enter the number of edges: 
Enter the edges in the graph : <to> <from>
1 2 
2 3 
3 4 
4 1 
1 3 
The Adjacency List Representation of the graph is: 
1 -> 2 -> 4 -> 3
2 -> 1 -> 3
3 -> 2 -> 4 -> 1
4 -> 3 -> 1

Related posts:

Java Program to Find Basis and Dimension of a Matrix
Hướng dẫn sử dụng Lớp FilePermission trong java
Logout in an OAuth Secured Application
Java Program to implement Bi Directional Map
Java Program to Implement Attribute API
Java Program to Find the Minimum value of Binary Search Tree
A Guide to WatchService in Java NIO2
Send email with SMTPS (eg. Google GMail)
Java Program to Perform Searching Using Self-Organizing Lists
Finding Max/Min of a List or Collection
Spring Autowiring of Generic Types
Hướng dẫn Java Design Pattern – Interpreter
Spring Boot Tutorial – Bootstrap a Simple Application
Serialize Only Fields that meet a Custom Criteria with Jackson
Creating a Generic Array in Java
@Lookup Annotation in Spring
Java Program to Test Using DFS Whether a Directed Graph is Weakly Connected or Not
Introduction to Spring Cloud Netflix – Eureka
Guide to Apache Commons CircularFifoQueue
“Stream has already been operated upon or closed” Exception in Java
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
Spring Boot - Zuul Proxy Server and Routing
Java Program to Implement Merge Sort Algorithm on Linked List
Java Program to Implement Double Ended Queue
Java Program to Implement Sieve Of Eratosthenes
Java Program to Check Whether Topological Sorting can be Performed in a Graph
Guide to Dynamic Tests in Junit 5
Request Method Not Supported (405) in Spring
Java Program to Implement Hash Tables Chaining with Binary Trees
Giới thiệu Java 8
Java Program to Perform Cryptography Using Transposition Technique
Apache Tiles Integration with Spring MVC