4

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

谢谢你。

4

2 回答 2

10

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

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

    private static class Vertex<E> {
        E elem;
        List<Vertex<E>> neighbors;
    }
}
于 2012-04-21T02:10:21.110 回答
2

通常,根据其对预期用途的适用性来选择表示。在这个简单的示例中,GraphPanel仅使用 aList<Edge>作为其模型。

于 2012-04-21T02:04:08.907 回答