What I've just called
``scanning through'' a tree is actually called traversing a tree.
General Definition: to traverse a data structure is to process, however you like, every node in the data
structure exactly once.
Note: You may ``pass through'' a node as many times as you like but you
must only process the node once.
E.g.
we can talk about ``traversing a list'', which means going through the list and
processing every node once. We had a special name for this: map.
For a specific data
structure, we talk about the different orders in which it might be traversed. For a list there
are two common traversal orders: first-to-last (the most common) and last-to-first.
The general recursive
pattern for traversing a (non-empty) binary tree is this: At node N you must do
these three things: