/guava/guava/src/com/google/common/graph/Traverser.java
ancestorStack.push ( next ) ;
for (N next = visitNext(horizon); next != null; next = visitNext(horizon)) { Iterator<? extends N> successors = successorFunction.successors(next).iterator(); if (!successors.hasNext()) { return next; } horizon.addFirst(successors); <extra_id_0> } if (!ancestorStack.isEmpty()) { return ancestorStack.pop(); } return endOfData(); }