#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
Preview:
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