Preview:
#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 
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter