Binary Tree Traversal Techniques (Inorder , Preorder , Postorder ) 🌟🌟🎊🎊👍👍
By: Himanshu Tiwari
Algorithm Inorder(tree)
1 . Traverse the left subtree, i.e., call Inorder(left->subtree)
2 .Visit the root.
3 . Traverse the right subtree, i.e., call Inorder(right->subtree)
Algorithm Preorder(tree)
1 . Visit the root.
2 . Traverse the left subtree, i.e., call Preorder(left->subtree)
3 . Traverse the right subtree, i.e., call Preorder(right->subtree)
Algorithm Postorder(tree)
1 . Traverse the left subtree, i.e., call Postorder(left->subtree)
2 . Traverse the right subtree, i.e., call Postorder(right->subtree)
3 . Visit the root
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *left;
struct node *right;
};
struct node *create_node(int data) {
struct node *new_node = malloc(sizeof(struct node));
new_node->data = data;
new_node->left = NULL;
new_node->right = NULL;
return new_node;
}
void insert_node(struct node **root, int data) {
if (*root == NULL) {
*root = create_node(data);
return;
}
if (data < (*root)->data) {
insert_node(&(*root)->left, data);
} else {
insert_node(&(*root)->right, data);
}
}
void print_tree(struct node * r) {
if (r == NULL) {
return;
}
print_tree(r->left);
printf("%d ", r->data);
print_tree(r->right);
}
void preorder(struct node * rr){
if(rr!=NULL){
printf("%d ",rr->data);
preorder(rr->left);
preorder(rr->right);
}
}
void inorder(struct node * r){
if(r!=NULL){
inorder(r->left);
printf("%d ",r->data);
inorder(r->right);
}
}
void postorder(struct node *r){
if(r!=NULL){
postorder(r->left);
postorder(r->right);
printf("%d ",r->data);
}
}
int main() {
struct node *p=create_node(1);
struct node *p1=create_node(2);
struct node *p2=create_node(3);
struct node *p3=create_node(4);
struct node *p4=create_node(5);
struct node *p5=create_node(6);
struct node *p6=create_node(7);
p->left=p1;
p->right=p2;
p1->left=p3;
p1->right=p4;
p2->left=p5;
p2->right=p6;
printf((" PREORDER : "));
preorder(p);
printf("\n");
printf(" INORDER : ");
inorder(p);
printf("\n");
printf(" POSTORDER : ");
postorder(p);
return 0;
}

.png)
Comments
Post a Comment