Skip to content

Commit 7b4d1f9

Browse files
committed
Add an adjacency-list representation for a weighted graph
1 parent b30a44c commit 7b4d1f9

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.packt.datastructuresandalg.lesson6.graph;
2+
3+
import java.util.ArrayList;
4+
5+
public class AdjacencyListWeightedGraph {
6+
private class Edge {
7+
int u, v, weight;
8+
9+
public Edge(int u, int v, int weight) {
10+
this.u = u;
11+
this.v = v;
12+
this.weight = weight;
13+
}
14+
}
15+
16+
ArrayList<Edge>[] adj;
17+
18+
public AdjacencyListWeightedGraph(int nodes) {
19+
this.adj = new ArrayList[nodes];
20+
for (int i = 0; i < nodes; i++)
21+
this.adj[i] = new ArrayList<>();
22+
}
23+
24+
public void addEdge(int u, int v, int weight) {
25+
this.adj[u].add(new Edge(u, v, weight));
26+
}
27+
28+
@Override
29+
public String toString() {
30+
String res = "";
31+
for (int i = 0; i < adj.length; i++) {
32+
res += (i + ":");
33+
for (int j = 0; j < adj[i].size(); j++) {
34+
Edge edge = adj[i].get(j);
35+
res += (" " + edge.v + "(" + edge.weight + ")");
36+
}
37+
if (i + 1 < adj.length)
38+
res += "\n";
39+
}
40+
return res;
41+
}
42+
43+
public static void main(String [] args) {
44+
AdjacencyListWeightedGraph g = new AdjacencyListWeightedGraph(6);
45+
g.addEdge(0, 1, 1);
46+
g.addEdge(0, 3, 4);
47+
g.addEdge(1, 4, 3);
48+
g.addEdge(2, 4, 10);
49+
g.addEdge(2, 5, 4);
50+
g.addEdge(3, 1, 5);
51+
g.addEdge(4, 3, 1);
52+
g.addEdge(5, 5, 2);
53+
System.out.println(g);
54+
}
55+
}

0 commit comments

Comments
 (0)