Pergunta de entrevista da empresa Yahoo

Explain all traversal types of Binary tree

Respostas da entrevista

Sigiloso

10 de dez. de 2009

To explain them, not just list them, would take a short amount of time. The only difference between In-order, Post-order, and Pre-order is where the node is printed in the function. In order: traverse(node.left_chld) print(node.value) traverse(node.right_child) post-order: traverse(node.left_chld) traverse(node.right_child) print(node.value) pre-order: print(node.value) traverse(node.left_chld) traverse(node.right_child) level order is what is called breadth first search. Ideally you would use a queue and you'd do something like: levelorder(root) q = empty queue q.enqueue(root) while not q.empty do node << q.dequeue() visit(node) if node.left != null q.enqueue(node.left) if node.right != null q.enqueue(node.right) (adapted the last snippet from Wikipedia)

1

Sigiloso

23 de nov. de 2009

in-order, post-order, pre-order and level-order.