Tree traversal
Traversing (or walking) a tree is the process of visiting all the nodes of a tree and performing an operation at each node. However, how should we do this? Should we start from the top of the tree or from the bottom? From the left-hand or the right-hand side? There are three different approaches that can be used to visit all the nodes in a tree: in-order, pre-order, and post-order.
In the following sections, we will dive into the uses and implementations of these three types of tree traversals.
In-order traversal
An in-order traversal visits all the nodes of a BST in an ascending order, meaning it will visit the nodes from the smallest to the largest. An application of in-order traversal would be to sort a tree. Let's check out its implementation:
inOrderTraverse(callback) { this.inOrderTraverseNode(this.root, callback); // {1} }
The inOrderTraverse
 method receives a callback
 function as a parameter. This function can be used to perform the action we want to execute when the...