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
Related posts:
Java Program to Implement IdentityHashMap API
Java Program to Generate a Random Subset by Coin Flipping
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Functional Interface trong Java 8
Java Optional as Return Type
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Java Program to Implement Pagoda
Notify User of Login From New Device or Location
Filtering a Stream of Optionals in Java
Compare Two JSON Objects with Jackson
Java Program to Implement Graph Structured Stack
Posting with HttpClient
Spring RestTemplate Error Handling
Hướng dẫn Java Design Pattern – Null Object
Hướng dẫn Java Design Pattern – Composite
Spring REST API + OAuth2 + Angular
Spring Security OAuth Login with WebFlux
Java Program to Create a Balanced Binary Tree of the Incoming Data
Tính đóng gói (Encapsulation) trong java
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Netflix Archaius with Various Database Configurations
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Hướng dẫn Java Design Pattern – Iterator
Spring Boot - Rest Controller Unit Test
Java Stream Filter with Lambda Expression
A Guide to TreeMap in Java
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Deploy a Spring Boot WAR into a Tomcat Server
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement HashSet API
Java Program to Check the Connectivity of Graph Using BFS