我现在正在使用Java讲授数据结构类,我们将弄清楚如何实现有向图类。
就在最顶端,我认为拥有一个链接列表种类的类,该类具有一个值字段和一个链接(自引用)字段数组,例如以下代码:
public class Digraph<T>
{
T vertex;
Digraph<T>[] edge;
public Digraph(T val, int maxDegree)
{
vertex = val;
edge = new Digraph<T>[maxDegree];
}
}
在我写完这些之后,我意识到这不是接近此提示的一种简单方法。 如何实现不像我的代码那么混乱的有向图?还是这样可以吗?
答案 0 :(得分:2)
我认为使用链接列表方法来实现图形并不是一个好的想法。 与链表和树不同,Graph本质上不是递归结构。
我将基于以下事实来实现它:一个图由一个顶点列表组成,并且每个顶点通过Edges连接到其邻居:
class Graph<E> {
public List<Vertex<E>> vertexs;
}
class Vertex<E> {
public E val;
public List<Edge<E>> connections;
}
class Edge<E> {
public Vertex<E> source;
public Vertex<E> destination;
}
但是表示图形的最简单方法是使用Adjacency_matrix