implementareaMea
implementare adjList of a directed graphunknown
java
4 years ago
1.5 kB
8
Indexable
package datastructures.graph;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Edge
{
int source;
int dest;
public Edge(int source, int dest)
{
this.source = source;
this.dest = dest;
}
}
// 1--->2--->3
// [1 | ] -> [2,4]
// [2 | ] -> [3]
// [3 | ]
class Graph
{
List<List<Integer>> adjList;
public Graph (List<Edge> edges)
{
adjList = new ArrayList<>();
for (Edge e: edges)
{
adjList.add(new ArrayList<>());
}
for (Edge e: edges)
{
adjList.get(e.source).add(e.dest);
}
}
public static void printGraph(Graph graph)
{
int i = 0;
int n = graph.adjList.size();
while (i < n){
for (int j: graph.adjList.get(i))
{
System.out.print(i + " -> " + j + "\t");
}
System.out.println();
i++;
}
}
}
class ArrayListGraph
{
public static void main (String[] args) {
// Input: List of edges in a digraph (as per the above diagram)
List<Edge> edges = Arrays.asList(new Edge(0, 1), new Edge(1, 2),
new Edge(2, 0), new Edge(2, 1), new Edge(3, 2),
new Edge(4, 5), new Edge(5, 4));
Graph graph = new Graph(edges);
Graph.printGraph(graph);
}
}Editor is loading...