Graph Representation using Java ArrayList
Prerequisite : Graph and its representations
In this article, we will be discussing Adjacency List representation of Graph using ArrayList in Java.
Following is adjacency list representation of the above graph.
The idea is to use ArrayList of ArrayLists.
import java.util.*;
class Test {
static void addEdge(ArrayList<ArrayList<Integer> > adj,
int u, int v)
{
adj.get(u).add(v);
adj.get(v).add(u);
}
static void printAdjacencyList(ArrayList<ArrayList<Integer> > adj)
{
for ( int i = 0 ; i < adj.size(); i++) {
System.out.println( "Adjacency list of " + i);
for ( int j = 0 ; j < adj.get(i).size(); j++) {
System.out.print(adj.get(i).get(j) + " " );
}
System.out.println();
}
}
public static void main(String[] args)
{
int V = 5 ;
ArrayList<ArrayList<Integer> > adj = new ArrayList<ArrayList<Integer> >(V);
for ( int i = 0 ; i < V; i++)
adj.add( new ArrayList<Integer>());
addEdge(adj, 0 , 1 );
addEdge(adj, 0 , 4 );
addEdge(adj, 1 , 2 );
addEdge(adj, 1 , 3 );
addEdge(adj, 1 , 4 );
addEdge(adj, 2 , 3 );
addEdge(adj, 3 , 4 );
printAdjacencyList(adj);
}
}
|
Output:
Adjacency list of 0
1 4
Adjacency list of 1
0 2 3 4
Adjacency list of 2
1 3
Adjacency list of 3
1 2 4
Adjacency list of 4
0 1 3
Similar Implementation using a separate Class for Graph.
import java.util.*;
class Graph {
ArrayList<ArrayList<Integer> > adj;
int V;
Graph( int v)
{
V = v;
adj = new ArrayList<ArrayList<Integer> >(V);
for ( int i = 0 ; i < V; i++)
adj.add( new ArrayList<Integer>());
}
void addEdge( int u, int v)
{
adj.get(u).add(v);
adj.get(v).add(u);
}
void printAdjacencyList()
{
for ( int i = 0 ; i < adj.size(); i++) {
System.out.println( "Adjacency list of " + i);
for ( int j = 0 ; j < adj.get(i).size(); j++) {
System.out.print(adj.get(i).get(j) + " " );
}
System.out.println();
}
}
}
class Test {
public static void main(String[] args)
{
int V = 5 ;
Graph g = new Graph(V);
g.addEdge( 0 , 1 );
g.addEdge( 0 , 4 );
g.addEdge( 1 , 2 );
g.addEdge( 1 , 3 );
g.addEdge( 1 , 4 );
g.addEdge( 2 , 3 );
g.addEdge( 3 , 4 );
g.printAdjacencyList();
}
}
|
Output:
Adjacency list of 0
1 4
Adjacency list of 1
0 2 3 4
Adjacency list of 2
1 3
Adjacency list of 3
1 2 4
Adjacency list of 4
0 1 3
Last Updated :
16 Apr, 2019
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...