1. A computer-implemented method for traversing a hierarchical data structure, comprising: processing elements inside the hierarchical data structure beginning at a first level of the hierarchical data structure; and in the event that a branch point associated with a second level of the hierarchical data structure is encountered: using a processor to store, inside a user allocated data structure, marker data that includes location information describing the location the branch point was encountered within the hierarchical data structure and excludes at least one of the following: a return address, a parameter, or a local variable associated with a function call; and using the marker data stored in the user allocated data structure to enable any elements in the second level and any remaining elements in the first level to be processed without recursion, comprising: processing any elements in the second level associated with the branch point without making a recursive function call; retrieving the marker data, using the processor, upon completion of processing elements in the second level; and using the marker data to resume processing in the first level of the hierarchical data structure at the location with which the marker data is associated.