depth First Iterator
Creates and returns an iterable that traverses the subhierarchy rooted at the give node in depth-first order. The first node returned by the iterator's next() method is the leftmost leaf.
Return
an iterable that traverses the subtree rooted at this node in depth-first order.
Parameters
parent
the root of the hierarchy to traverse