【问题标题】:Java Adjacency list implementation of graph with directed weighted edges具有有向加权边的图的Java邻接表实现
【发布时间】:2016-10-28 12:34:03
【问题描述】:

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

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

【问题讨论】:

    标签: java graph linked-list adjacency-list


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 2015-12-17
      相关资源
      最近更新 更多