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

Java Adjacency list implementation of graph with directed weighted edges

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

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

您应该将图形表示为 HashMap,其中键是顶点标签,值是顶点对象。

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

Vertex是一个class封装的顶点attributes.There将是一个属性HashMap用于相邻的顶点有权重

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

您可以通过顶点向图表添加更多功能和属性 class。