You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.2 KiB
Java
101 lines
3.2 KiB
Java
//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();
|
|
}
|
|
}
|
|
|
|
/*
|
|
|
|
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 |