当有人使用ArrayList来实现带有邻接列表表示的加权图时,我感到困惑。例如,在https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-in-java-using-priorityqueue/中,代码为
List<List<Node> > adj = new ArrayList<List<Node> >();
// Initialize list for every node
for (int i = 0; i < V; i++) {
List<Node> item = new ArrayList<Node>();
adj.add(item);
}
// Inputs for the DPQ graph
adj.get(0).add(new Node(1, 9));
adj.get(0).add(new Node(2, 6));
adj.get(0).add(new Node(3, 5));
adj.get(0).add(new Node(4, 3));
adj.get(2).add(new Node(1, 2));
adj.get(2).add(new Node(3, 4));
我想
adj.get(0).add(new Node(1, 9));
应该是
adj.get(0).add(new Node(1, 4));
因为边缘0和1之间的权重是4,而不是9。
我错过了什么?