What is recursion, and how is it different from iterative constructs?
Demonstrate the distinction by implementing preorder traversal of a binary tree using both recursion and an explicit stack. traverse_tree(root) accepts None or a nested list [value, left, right] and returns a dictionary containing both traversal results. Values are integers, and the tree contains at most 1,000 nodes.
def traverse_tree(root):