我正在实施一些算法来自学图表以及如何使用它们。你会推荐什么是在 Java 中做到这一点的最佳方法?
我只是想问你是否可以为有向图和加权有向图的简短非常简单的类定义提供简短的帮助?
我查看了网络,但我不想要它的实现,只是类的简短定义......你认为最好的数据结构是什么?相邻列表?
对于无向图,我将其定义如下:
public interface Graph {
Collection vertices(); // returns a collection of all the
// Vertex objects in the graph
Collection edges(); // returns a collection of all the
// Edge objects in the graph
Collection incidentEdges(Vertex v); // returns a collection of
// Edges incident to v
boolean isAdjacent(Vertex v, Vertex w); // return true if v and
} // w are adjacent
public class Vertex {
public boolean visited; // initially false for all vertices
}
public class Edge {
Vertex v1, v2; // undirected edge
Vertex opposite(Vertex v); // given a vertex return the one
} // at the other end of this edge