这个Graph ADT中的边缘类型应该是什么?

时间:2013-11-24 21:04:37

标签: java graph jgrapht

我正在将游戏作为一个类项目,我建议我使用Graph ADT来表示世界地图上的一组区域,这样每个顶点都是一个区域,边缘代表相邻的区域玩家可以在两者之间移动。我为Graph ADT(JGraphT)找到了一个很好的Java库,但我完全不知道边缘应该是什么类型......

例如,Graph<V,E>界面显然要求我为顶点定义一个对象类型(我认为使用我的Territory类型非常有意义)但边缘应该是什么?我想不出任何有意义的对象类型可以用作边缘。

2 个答案:

答案 0 :(得分:1)

嗯,例如:

(1)

public class Border {
   // ... put here anything that's useful
   // e.g. length of border or type of border (land,sea,river)
}

边缘实际上是边界 这两个地区之间。

所以对我来说这是有道理的 边缘是边界类。

另一个想法:

(2)

public class Distance {
   // ... put here anything that's useful
   // e.g. the distance between the two capitals
}

我通常在脑海中代表那些图形 顶点是大写字母,边缘是说的 各国首都之间的道路(任何两个接壤的道路) 州/地区,我的意思是。)

答案 1 :(得分:1)

如果您需要边框权重(距离等),jgrapht库包含一个名为DefaultWeightedEdge的边类型。否则,您可能只使用DefaultEdge类。

这是一个更实际的答案,即这些是jgrapht中适合您目的的实际类。如果你正在寻找一个更概念性的答案,我认为peter.petrov关于Border类的答案非常重要。