#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
char data;
struct Node* left;
struct Node* right;
} Node;
Node* createNode(char value)
{
Node* newNode = (Node*)malloc(sizeof(Node*));
newNode -> data = value;
newNode -> left = NULL;
newNode -> right = NULL;
return newNode;
}
void preOrder(Node* root)
{
if(root != NULL) {
printf("%c ", root -> data);
preOrder(root -> left);
preOrder(root -> right);
}
}
void inOrder(Node* root)
{
if(root != NULL) {
inOrder(root -> left);
printf("%c ", root -> data);
inOrder(root -> right);
}
}
void postOrder(Node* root)
{
if(root != NULL) {
postOrder(root -> left);
postOrder(root -> right);
printf("%c ", root -> data);
}
}
int main() {
Node* root = createNode('A');
root ->left = createNode('B');
root -> right = createNode('C');
root -> left -> left = createNode('D');
root -> left -> right = createNode('E');
root -> right -> left = createNode('F');
root -> right -> right = createNode('G');
printf("Pre-Order Traversal: ");
printf("\n");
preOrder(root);
printf("\n\nIn-Order Traversal: ");
printf("\n");
inOrder(root);
printf("\n\nPost-Order Traversal: ");
printf("\n");
postOrder(root);
return 0;
}
//OUTPUT:
Pre-Order Traversal:
A B D E C F G
In-Order Traversal:
D B E A F C G
Post-Order Traversal:
D E B F G C A