In order to reduce stack size this patch converts full frame recursive
methods into iterative.
- No functional changes.
- No performance changes.
- Memory peak may slightly vary depending on the tree because now breadth-first traversal is used instead of depth-first.
Tests in D11113 have same results except for test1 memory peak:
360MBs instead of 329.50MBs.