Traversal and search techniques are fundamental concepts in the design and analysis of algorithms
Traversal and search techniques are fundamental concepts in the design and analysis of algorithms
algorithms. They enable us to access and manipulate data stored in various structures like arrays,
linked lists, trees, and graphs. Below are some basic traversal and search techniques with
explanations and examples.
1. Traversal Techniques
a. Array Traversal
Definition: Visiting each node in a linked list from the head to the end.
c. Tree Traversal
Types:
2. Search Techniques
a. Linear Search
b. Binary Search
Definition: Searching for an element in a sorted array by repeatedly dividing the search interval
in half.
Definition: A traversal technique that explores as far down a branch as possible before
backtracking.
1
Tree traversal (Inorder, Preorder an Postorder)
In this article, we will discuss the tree traversal in the data structure. The term 'tree traversal'
means traversing or visiting each node of a tree. There is a single way to traverse the linear
data structure such as linked list, queue, and stack. Whereas, there are multiple ways to
traverse a tree that are listed as follows -
o Preorder traversal
o Inorder traversal
o Postorder traversal
So, in this article, we will discuss the above-listed techniques of traversing a tree. Now, let's
start discussing the ways of tree traversal.
Preorder traversal
This technique follows the 'root left right' policy. It means that, first root node is visited after
that the left subtree is traversed recursively, and finally, right subtree is recursively
traversed. As the root node is traversed before (or pre) the left and right subtree, it is called
preorder traversal.
So, in a preorder traversal, each node is visited before both of its subtrees.
Advertisement
2
Now, start applying the preorder traversal on the above tree. First, we traverse the root
node A; after that, move to its left subtree B, which will also be traversed in preorder.
So, for left subtree B, first, the root node B is traversed itself; after that, its left subtree D is
traversed. Since node D does not have any children, move to right subtree E. As node E
also does not have any children, the traversal of the left subtree of root node A is
completed.
Now, move towards the right subtree of root node A that is C. So, for right subtree C, first
the root node C has traversed itself; after that, its left subtree F is traversed. Since
node F does not have any children, move to the right subtree G. As node G also does not
have any children, traversal of the right subtree of root node A is completed.
Therefore, all the nodes of the tree are traversed. So, the output of the preorder traversal of
the above tree is -
A→B→D→E→C→F→G
To know more about the preorder traversal in the data structure, you can follow the
link Preorder traversal.
Postorder traversal
This technique follows the 'left-right root' policy. It means that the first left subtree of the root
node is traversed, after that recursively traverses the right subtree, and finally, the root node
is traversed. As the root node is traversed after (or post) the left and right subtree, it is
called postorder traversal.
So, in a postorder traversal, each node is visited after both of its subtrees.
3
o It is used to delete the tree.
o It can also be used to get the postfix expression of an expression tree.
Algorithm
Now, start applying the postorder traversal on the above tree. First, we traverse the left
subtree B that will be traversed in postorder. After that, we will traverse the right
subtree C in postorder. And finally, the root node of the above tree, i.e., A, is traversed.
So, for left subtree B, first, its left subtree D is traversed. Since node D does not have any
children, traverse the right subtree E. As node E also does not have any children, move to
the root node B. After traversing node B, the traversal of the left subtree of root node A is
completed.
Now, move towards the right subtree of root node A that is C. So, for right subtree C, first its
left subtree F is traversed. Since node F does not have any children, traverse the right
subtree G. As node G also does not have any children, therefore, finally, the root node of
the right subtree, i.e., C, is traversed. The traversal of the right subtree of root node A is
completed.
At last, traverse the root node of a given tree, i.e., A. After traversing the root node, the
postorder traversal of the given tree is completed.
4
Therefore, all the nodes of the tree are traversed. So, the output of the postorder traversal
of the above tree is -
D→E→B→F→G→C→A
To know more about the postorder traversal in the data structure, you can follow the
link Postorder traversal.
Inorder traversal
This technique follows the 'left root right' policy. It means that first left subtree is visited after
that root node is traversed, and finally, the right subtree is traversed. As the root node is
traversed between the left and right subtree, it is named inorder traversal.
So, in the inorder traversal, each node is visited in between of its subtrees.
5
Now, start applying the inorder traversal on the above tree. First, we traverse the left
subtree B that will be traversed in inorder. After that, we will traverse the root node A. And
finally, the right subtree C is traversed in inorder.
So, for left subtree B, first, its left subtree D is traversed. Since node D does not have any
children, so after traversing it, node B will be traversed, and at last, right subtree of node B,
that is E, is traversed. Node E also does not have any children; therefore, the traversal of
the left subtree of root node A is completed.
At last, move towards the right subtree of root node A that is C. So, for right subtree C; first,
its left subtree F is traversed. Since node F does not have any children, node C will be
traversed, and at last, a right subtree of node C, that is, G, is traversed. Node G also does
not have any children; therefore, the traversal of the right subtree of root node A is
completed.
As all the nodes of the tree are traversed, the inorder traversal of the given tree is
completed. The output of the inorder traversal of the above tree is -
D→B→E→A→F→C→G
To know more about the inorder traversal in data structure, you can follow the link Inorder
Traversal.