non recursive depth first tree traversals