图形在java中的实现

图形在java中的实现,java,graph,implementation,Java,Graph,Implementation,我试图创建一个Graph类,它使用另一个类Vertex类来表示Graph的所有顶点。我不确定是否需要一个Edge类来表示两个顶点之间可能的连接,因为每个顶点都可以跟踪它连接到的其他节点。但我不确定这是否正确。你觉得怎么样 谢谢。通常,根据其对预期用途的适用性来选择。在这个简单的示例中,只使用列表作为其模型。您不必使用边缘类。您可以使用邻接列表,但仍然可以正确表示未加权的图形。对于加权图,您需要一种表示边缘成本的方法,因此使用edge类是合适的 class Graph<E> {

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


谢谢。

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

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

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

    private static class Vertex<E> {
        E elem;
        List<Vertex<E>> neighbors;
    }
}
类图{
私有列表顶点;
私有静态类顶点{
E元素;
列出邻居;
}
}

Q:这是“家庭作业”吗?如果是,请将其标记为。无论如何,看看这个:这不是家庭作业。我知道如何在使用和不使用edge类的情况下实现该类。我只是想知道没有Edge类是否正确。谢谢你的链接。是的,这就是我的想法。在根本不使用边类的情况下跟踪其他顶点。非常感谢。在需要加权有向图之前,一切都很好。然后你需要元数据或者更好的边缘类。@AndrewFinnell:谢谢。更新。