Java 图的传递闭包

Java 图的传递闭包,java,graph,Java,Graph,我必须找到给定图的传递闭包。所以craetes传递闭包的方法应该是这样的:G=ABCD->G+=AB AC AD BC BD CD,G是一个给定的图,G+是一个传递闭包。到目前为止,我的方法从ABCD输出AB AC AD,但如何输出其余的BC BD CD?我创造了: 图形类: class Graph { String id; Vertex first; Graph (String s, Vertex v) { id = s; first = v; }

我必须找到给定图的传递闭包。所以craetes传递闭包的方法应该是这样的:G=ABCD->G+=AB AC AD BC BD CD,G是一个给定的图,G+是一个传递闭包。到目前为止,我的方法从ABCD输出AB AC AD,但如何输出其余的BC BD CD?我创造了:

图形类:

class Graph {

  String id;
  Vertex first;

  Graph (String s, Vertex v) {
     id = s;
     first = v;
  }

  Graph (String s) {
     this (s, null);
  }


  public LinkedList<Edge> transitiveClosure(LinkedList<Vertex> v)
  {

      Graph g = new Graph("G+");
      LinkedList<Edge> edge = new LinkedList<Edge>();
      Edge e = null;      
      Iterator i = v.iterator();

      for(Vertex vertex : v)
      {
         System.out.print(vertex);


        while(i.hasNext()) {          
        g.first = v.getFirst();
        Vertex tmp = v.getFirst();

        tmp =(Vertex) i.next();
        if(tmp == g.first) 
        tmp = (Vertex)i.next();
        e = new Edge(g.first.toString() + tmp);                         
        edge.add(e);
        //v.remove(g.first);


        }
      }


      System.out.println();
      return edge;
      }
}

边缘类

 class Edge {

  String id;
  Vertex target;
  Edge next;

  Edge (String s, Vertex v, Edge e) {
     id = s;
     target = v;
     next = e;
  }

  Edge (String s) {
     this (s, null, null);
  }

  @Override
  public String toString() {
     return id;
  }

  // TODO!!! Your Edge methods here!

}

您对图形的表示似乎缺乏—图形没有第一个顶点。它可能有许多可能未连接的顶点。你没有分享你对顶点和边的定义。要么你有一个糟糕的命名约定,要么你似乎不知道a是什么。或者两者兼而有之。或者我只是不明白你对图形的定义。对不起,你必须回到这幅图的画板上。您需要了解,图中没有起始顶点,只有在通过图的特定路径中。因此,这种说法是错误的。尝试快速帮助,包括一些图形的Java表示。
 class Edge {

  String id;
  Vertex target;
  Edge next;

  Edge (String s, Vertex v, Edge e) {
     id = s;
     target = v;
     next = e;
  }

  Edge (String s) {
     this (s, null, null);
  }

  @Override
  public String toString() {
     return id;
  }

  // TODO!!! Your Edge methods here!