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:

Spring Boot Gradle Plugin
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Extract links from an HTML page
Java Program to Implement Adjacency Matrix
Lập trình mạng với java
Control Structures in Java
Xây dựng ứng dụng Client-Server với Socket trong Java
Java Program for Douglas-Peucker Algorithm Implementation
Java Program to Solve any Linear Equation in One Variable
Creating Docker Images with Spring Boot
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers
Hướng dẫn Java Design Pattern – Prototype
Lập trình đa luồng với CompletableFuture trong Java 8
Using JWT with Spring Security OAuth (legacy stack)
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
File Upload with Spring MVC
Java Program to Implement Pagoda
Spring Boot - Enabling Swagger2
Autoboxing và Unboxing trong Java
Introduction to Java 8 Streams
Java Program to Find the Nearest Neighbor Using K-D Tree Search
OAuth2.0 and Dynamic Client Registration
Java Program to implement Associate Array
Java – Byte Array to Reader
Java Program to Implement Uniform-Cost Search
Java Program to Find Path Between Two Nodes in a Graph
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Check if a String is a Palindrome in Java
Mockito and JUnit 5 – Using ExtendWith
Xử lý ngoại lệ trong Java (Exception Handling)