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。
我正在尝试使用邻接列表在 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。