我正在尝试使用邻接列表在Java中实现有向加权边缘图。它由一个大小等于顶点数的数组组成,数组的每个条目都是每个特定LinkedList
的后继的Vertex
。
我想为每条边添加权重,我想通过在successor
中为每个LinkedList
对象添加权重标签来做到这一点,而且我想在{{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类为图表添加更多功能和属性。