Java Program to Represent Graph Using Linked List

This is a java program to represent graph as a linked 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 Linked 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 linked 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_Linked_List 
{
    private Map<Integer, List<Integer>> adjacencyList;
 
    public Represent_Graph_Linked_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_Linked_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_Linked_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 Linked 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_Linked_List.java
$ java Represent_Graph_Linked_List
 
Enter the number of vertices: 
5
Enter the number of edges: 
4
Enter the edges in the graph : <to> <from>
1 2
1 3
3 5
4 3 
The Linked List Representation of the graph is: 
1 -> 2 -> 3
2 -> 1
3 -> 1 -> 5 -> 4
4 -> 3
5 -> 3

Related posts:

Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement Flood Fill Algorithm
Guide to the Java ArrayList
Chuyển đổi giữa các kiểu dữ liệu trong Java
Java Program to Perform Optimal Paranthesization Using Dynamic Programming
Check If a String Is Numeric in Java
The StackOverflowError in Java
Server-Sent Events in Spring
How to Define a Spring Boot Filter?
Java Program to Implement Horner Algorithm
Java Program to Implement Gauss Jordan Elimination
How to Delay Code Execution in Java
Java Program for Douglas-Peucker Algorithm Implementation
Java List UnsupportedOperationException
Java – File to Reader
Java Program to Implement Johnson’s Algorithm
Java Program to Implement the Checksum Method for Small String Messages and Detect
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java Program to Implement CopyOnWriteArrayList API
Spring Cloud AWS – RDS
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Request a Delivery / Read Receipt in Javamail
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Java Program to Implement Segment Tree
Getting the Size of an Iterable in Java
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
JWT – Token-based Authentication trong Jersey 2.x
Recommended Package Structure of a Spring Boot Project
Java Program to Check whether Graph is Biconnected
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Default Password Encoder in Spring Security 5