added Depth-first traversals