Java中的有向图实现

时间:2018-12-09 04:43:03

标签: java data-structures graph

我现在正在使用Java讲授数据结构类,我们将弄清楚如何实现有向图类。
就在最顶端,我认为拥有一个链接列表种类的类,该类具有一个值字段和一个链接(自引用)字段数组,例如以下代码:

    public class Digraph<T>
    {
        T vertex;
        Digraph<T>[] edge;

        public Digraph(T val, int maxDegree)
        {
            vertex = val;
            edge = new Digraph<T>[maxDegree];
        }
    }

在我写完这些之后,我意识到这不是接近此提示的一种简单方法。 如何实现不像我的代码那么混乱的有向图?还是这样可以吗?

1 个答案:

答案 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