This Java program,represents a given graph in the form of Adjacency list.
Here is the source code of the Java program to display a linked list in reverse. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class GraphAdjacencyList
{
/* Makes use of Map collection to store the adjacency list for each vertex.*/
private Map<Integer, List<Integer>> Adjacency_List;
/*
* Initializes the map to with size equal to number of vertices in a graph
* Maps each vertex to a given List Object
*/
public GraphAdjacencyList(int number_of_vertices)
{
Adjacency_List = new HashMap<Integer, List<Integer>>();
for (int i = 1 ; i <= number_of_vertices ; i++)
{
Adjacency_List.put(i, new LinkedList<Integer>());
}
}
/* Adds nodes in the Adjacency list for the corresponding vertex */
public void setEdge(int source , int destination)
{
if (source > Adjacency_List.size() || destination > Adjacency_List.size())
{
System.out.println("the vertex entered in not present ");
return;
}
List<Integer> slist = Adjacency_List.get(source);
slist.add(destination);
List<Integer> dlist = Adjacency_List.get(destination);
dlist.add(source);
}
/* Returns the List containing the vertex joining the source vertex */
public List<Integer> getEdge(int source)
{
if (source > Adjacency_List.size())
{
System.out.println("the vertex entered is not present");
return null;
}
return Adjacency_List.get(source);
}
/*
* Main Function reads the number of vertices and edges in a graph.
* then creates a Adjacency List for the graph and prints it
*/
public static void main(String...arg)
{
int source , destination;
int number_of_edges,number_of_vertices;
int count = 1;
Scanner scan = new Scanner(System.in);
try
{
/* Read the number of vertices and edges in graph */
System.out.println("Enter the number of vertices and edges in graph");
number_of_vertices = scan.nextInt();
number_of_edges = scan.nextInt();
GraphAdjacencyList adjacencyList = new GraphAdjacencyList(number_of_vertices);
/* Reads the edges present in the graph */
System.out.println("Enter the edges in graph Format : <source index> <destination index>");
while (count <= number_of_edges)
{
source = scan.nextInt();
destination = scan.nextInt();
adjacencyList.setEdge(source, destination);
count++;
}
/* Prints the adjacency List representing the graph.*/
System.out.println ("the given Adjacency List for the graph \n");
for (int i = 1 ; i <= number_of_vertices ; i++)
{
System.out.print(i+"->");
List<Integer> edgeList = adjacencyList.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(InputMismatchException inputMismatch)
{
System.out.println("Error in Input Format. \nFormat : <source index> <destination index>");
}
scan.close();
}
}
$javac GraphAdjacencyList.java $java GraphAdjacencyList Enter the number of vertices and edges in graph 4 5 Enter the edges in graph Format : <source index> <destination index> 1 2 2 3 3 4 4 1 1 3 the given Adjacency List for the graph 1->2->4->3 2->1->3 3->2->4->1 4->3->1
Sanfoundry Global Education & Learning Series – 1000 Java Programs.
advertisement
advertisement
If you wish to look at all Java Programming examples, go to Java Programs.
If you find any mistake above, kindly email to [email protected]Related Posts:
- Practice Computer Science MCQs
- Practice Design & Analysis of Algorithms MCQ
- Apply for Computer Science Internship
- Check Data Structure Books
- Practice Programming MCQs