In this blog, I'm going to discuss one of the easiest ways by which you can traverse a binary tree.
Structure Of Tree
struct node { int data; node *right,*left; node(int data) { this->data=data; left=right=NULL; } };
Tree traversal
Pre-order : Root -> Left -> Right
void preorder(node* root)
{
if(root==NULL) // base condition
return ;
cout<data<<" "; // print root
preorder(root->left); // go to left child
preorder(root->right); // go to right child
}
In-order : Left -> Root -> Right
void inorder(node* root)
{
if(root==NULL)
return ;
inorder(root->left);
cout<<root->data<<" ";
inorder(root->right);
}
Post-order : Left -> Right -> Root
void postorder(node* root)
{
if(root==NULL)
return ;
postorder(root->left);
postorder(root->right);
cout<<root->data<<" ";
}
Sample Main Function
/*int main() { node* root = new node(12); root->left = new node(10); root->right = new node(30); root->right->left = new node(25); root->right->right = new node(40); inorder(root); preorder(root); postorder(root); return 0; } */
The above-mentioned approaches are quite similar to each other so if you're able to understand and implement one of them, then others will automatically become easy to understand and implement.
So for 3 different traversals, you don't need to understand 3 different approaches instead you can understand one of the above-mentioned algorithms and the rest will be similar with few minor changes.
Happy Coding!
Comments
Post a Comment
Your Feedback Will Help Us To Improve...