|
Traversing a binary tree comes in handy when you would like to do a print out
of all the data elements in the tree. We demonstrate three types of traversals in our
tutorial.
All traversal descriptions refer to:
![]() Figure 1.1: Sorted Binary Tree These three types are as follows:
|
Pre order traversal:A pre order traversal prints the contents of a sorted tree, in pre order. In other words, the contents of the root node are printed first, followed by left subtree and finally the right subtree. So in Figure 1.1, a pre order traversal would result in the following string: FCADJHIK. |
PreOrder (T)
If T < > Null
then print (T.data)
else print(‘empty tree’)
If T.lp < > null
then PreOrder(T.lp)
If T.rp < > null
then preorder (T.rp)
end.
|
|
In order traversal:An in order traversal prints the contents of a sorted tree, in order. In other words, the lowest in value first, and then increasing in value as it traverses the tree. The order of a traversal would be 'a' to 'z' if the tree uses strings or characters, and would be increasing numerically from 0 if the tree contains numerical values. So in Figure 1.1, an in order traversal would result in the following string: ACDFHIJK. |
InOrder (T)
If T < > null
print (‘empty tree’)
If T.lp < > null
then InOrder(T.lp)
print (T.data)
If T.rp < > null
then InOrder (T.lp)
end.
|
|
Post order traversal:A post order traversal prints the contents of a sorted tree, in post order. In other words, the contents of the left subtree are printed first, followed by right subtree and finally the root node. So in Figure 1.1, a post order traversal would result in the following string: ADCIHKJF. |
PostOrder (T)
If T = null
then print (‘empty tree’)
If T.lp < > null
then PostOrder(T.lp)
If T.rp < > null
then PostOrder(T.lp)
Print(T.data)
end.
|
|
|
If the word right is replaced by left and vice versa in the above definitions the result is called the Converse of the definition. (I.e. ConversePreOrder – Process the root, the right subtree and then the left subtree) |