Monday 27 November 2017

Java Program to Represent Graph Using Linked List


Code:

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> adjacencyList;

    public Represent_Graph_Linked_List(int v) 
    {
        adjacencyList = new HashMap>();
        for (int i = 1; i <= v; i++)
            adjacencyList.put(i, new LinkedList());
    }

    public void setEdge(int to, int from) 
    {
        if (to > adjacencyList.size() || from > adjacencyList.size())
            System.out.println("The vertices does not exists");

        List sls = adjacencyList.get(to);
        sls.add(from);
        List dls = adjacencyList.get(from);
        dls.add(to);
    }

    public List 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 : ");
            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 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:

Enter the number of vertices: 
5
Enter the number of edges: 
4
Enter the edges in the graph :
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



More Java Programs:



















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...