示例#1
0
  @Test
  public void testTraverse() {
    String[][] data = {{"A", "B"}, {"B", "C"}, {"A", "C"}, {"B", "D"}};
    Graph<String, DirectedEdge<String>> g = TestGraphFactory.createDirectedNew(data);
    final DynamicArray<String> log = DynamicArray.create();
    BFS.traverse(
        g,
        VarargsIterable.create("A"),
        new BFSVisitor<String, DirectedEdge<String>>() {
          @Override
          public void onDiscover(String vertex, int depth, VisitorStopper stopper) {
            log.addToLast(vertex + "(" + depth + ")");
          }

          @Override
          public void onWalk(DirectedEdge<String> e) {
            log.addToLast(e.toString());
          }
        });
    assertEquals("(A(0),A->B,B(1),A->C,C(1),B->D,D(2))", log.toString());
  }