@Override public Iterable<N> breadthFirst(final N startNode) { checkNotNull(startNode); return breadthFirst(ImmutableSet.of(startNode)); }
@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> depthFirstPostOrder(final N startNode) { checkNotNull(startNode); return depthFirstPostOrder(ImmutableSet.of(startNode)); }
checkArgument(((Network<?, ?>) tree).isDirected(), "Undirected networks can never be trees."); return new TreeTraverser<>(tree);
checkArgument(((Network<?, ?>) tree).isDirected(), "Undirected networks can never be trees."); return new TreeTraverser<>(tree);
@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> 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 N startNode) { checkNotNull(startNode); return breadthFirst(ImmutableSet.of(startNode)); }
@Override public Iterable<N> depthFirstPreOrder(final N startNode) { checkNotNull(startNode); return depthFirstPreOrder(ImmutableSet.of(startNode)); }
@Override public Iterable<N> breadthFirst(final N startNode) { checkNotNull(startNode); return breadthFirst(ImmutableSet.of(startNode)); }
@Override public Iterable<N> depthFirstPostOrder(final N startNode) { checkNotNull(startNode); return depthFirstPostOrder(ImmutableSet.of(startNode)); }
@Override public Iterable<N> depthFirstPreOrder(final N startNode) { checkNotNull(startNode); return depthFirstPreOrder(ImmutableSet.of(startNode)); }
@Override public Iterable<N> depthFirstPostOrder(final N startNode) { checkNotNull(startNode); return depthFirstPostOrder(ImmutableSet.of(startNode)); }
checkArgument(((Network<?, ?>) tree).isDirected(), "Undirected networks can never be trees."); return new TreeTraverser<>(tree);
checkArgument(((Network<?, ?>) tree).isDirected(), "Undirected networks can never be trees."); return new TreeTraverser<>(tree);
@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); } }; }