java中的图形实现

时间:2012-04-21 01:42:34

标签: java graph implementation

我正在尝试创建一个使用另一个类的Graph类,Vertex类表示图形的所有顶点。我不确定是否需要一个表示两个顶点之间可能连接的Edge类,因为每个顶点都可以跟踪它所连接的其他节点。但我不确定这是否正确。你觉得怎么样?

谢谢。

2 个答案:

答案 0 :(得分:10)

您不必使用Edge课程。您可以使用邻接列表并仍然正确表示未加权图表。对于加权图表,您需要一种表示边缘成本的方法,因此使用Edge类是合适的。

class Graph<E> {
    private List<Vertex<E>> vertices;

    private static class Vertex<E> {
        E elem;
        List<Vertex<E>> neighbors;
    }
}

答案 1 :(得分:2)

通常,representation的选择基于其对预期用途的适用性。在这个简单的示例中,GraphPanel仅使用List<Edge>作为其模型。