具有有向加权边的图的Java邻接列表实现

时间:2016-10-28 12:34:03

标签: java graph linked-list adjacency-list

我正在尝试使用邻接列表在Java中实现有向加权边缘图。它由一个大小等于顶点数的数组组成,数组的每个条目都是每个特定LinkedList的后继的Vertex

我想为每条边添加权重,我想通过在successor中为每个LinkedList对象添加权重标签来做到这一点,而且我想在{{1}添加其他变量以备将来使用。如果我想这样做,我将不得不为顶点创建一个新的数据结构,并将一个单独的数据结构创建为邻接列表。将两者结合为单一数据结构的有效设计是什么?

1 个答案:

答案 0 :(得分:2)

您应该将图表表示为HashMap,其中key是顶点的标签,value是顶点对象。

HashMap<String,Vertex> graph = new HashMap<String,Vertex>();

Vertex是一个封装顶点属性的类。对于具有权重的相邻顶点,将有一个属性HashMap。

HashMap<Vertex,Integer> adjListWithWeights = new HashMap<Vertex,Integer>();

您可以通过Vertex类为图表添加更多功能和属性。