扩展此邻接列表实现

时间:2014-10-16 00:33:00

标签: java graph adjacency-list

更改此邻接列表实现的实现的最佳方法是什么 包括重量'在两个顶点之间?

如果我稍后在之前制作的两个相同顶点之间添加边缘,我只想增加它的重量。

http://www.keithschwarz.com/interesting/code/edmonds-matching/UndirectedGraph.java.html

1 个答案:

答案 0 :(得分:1)

您可以将节点存储为节点映射(节点,权重)对(也可以是地图),而不是将图形存储为节点集合作为节点集合 而不是

    private final Map<T, Set<T>> mGraph = new HashMap<T, Set<T>>();

它将是

    private final Map<T, Map<T, Integer>> mGraph = new HashMap<T, Map<T, Integer>>();

在当前实现中,添加边缘只是将一个新的插入到集合中,使用权重,您必须读取当前权重,增加它并存储在地图中。 请注意在移除边缘时要检查的角落情况,如果它的重量变为0,则应从地图中删除该条目。