Two ways of traversal : DFS, BFS
Three methods to implement DFS:
InOrderTraversal (tree)
if (tree == null) return;
InOrderTraversal (tree.left);
Print (tree.key);
InOrderTraversal (tree.right);
PreOrderTraversal (tree)
if (tree == null) return;
Print (tree.key);
PreOrderTraversal (tree.left);
PreOrderTraversal (tree.right);
PostOrderTraversal (tree)
if (tree == null) return;
PostOrderTraversal (tree.left);
PostOrderTraversal (tree.right);
Print (tree.key);
Implement of BFS:
LevelTraversal (tree)
if (tree == null) return;
Queue q;
q.Enqueue (tree);
while (!q.Empty()){
node <-- q.Dequeue();
Print (node);
if (node.left != null) q.Enqueue (node.left);
if (node.right != null) q.Enqueue (node.right);
}
Summary:
Tree walks: DFS, BFS.
When working with a tree, recursive algorithms are common.
In CS, trees grow down.