@Override public Iterable<N> breadthFirst(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new BreadthFirstIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPostOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPostOrderIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPreOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N node : startNodes) { checkThatNodeIsInTree(node); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPreOrderIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPreOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N node : startNodes) { checkThatNodeIsInTree(node); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPreOrderIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPostOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPostOrderIterator(startNodes); } }; }
@Override public Iterable<N> breadthFirst(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new BreadthFirstIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPostOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPostOrderIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPreOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N node : startNodes) { checkThatNodeIsInTree(node); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPreOrderIterator(startNodes); } }; }
@Override public Iterable<N> breadthFirst(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new BreadthFirstIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPostOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPostOrderIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPreOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N node : startNodes) { checkThatNodeIsInTree(node); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPreOrderIterator(startNodes); } }; }
@Override public Iterable<N> breadthFirst(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new BreadthFirstIterator(startNodes); } }; }
@Override public Iterable<N> breadthFirst(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new BreadthFirstIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPostOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N startNode : startNodes) { checkThatNodeIsInTree(startNode); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPostOrderIterator(startNodes); } }; }
@Override public Iterable<N> depthFirstPreOrder(final Iterable<? extends N> startNodes) { checkNotNull(startNodes); if (Iterables.isEmpty(startNodes)) { return ImmutableSet.of(); } for (N node : startNodes) { checkThatNodeIsInTree(node); } return new Iterable<N>() { @Override public Iterator<N> iterator() { return new DepthFirstPreOrderIterator(startNodes); } }; }