#include <iostream>
using namespace std;
struct Node
{
int data;
Node *left;
Node *right;
};
// Create a new node
Node* createNode(int value)
{
Node *newNode = new Node;
newNode->data = value;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// Preorder Traversal (Root, Left, Right)
void preorder(Node *root)
{
if (root != NULL)
{
cout << root->data << " ";
preorder(root->left);
preorder(root->right);
}
}
// Inorder Traversal (Left, Root, Right)
void inorder(Node *root)
{
if (root != NULL)
{
inorder(root->left);
cout << root->data << " ";
inorder(root->right);
}
}
// Postorder Traversal (Left, Right, Root)
void postorder(Node *root)
{
if (root != NULL)
{
postorder(root->left);
postorder(root->right);
cout << root->data << " ";
}
}
int main()
{
// Create a tree
Node *root = createNode(10);
root->left = createNode(20);
root->right = createNode(30);
root->left->left = createNode(40);
root->left->right = createNode(50);
root->right->left = createNode(60);
root->right->right = createNode(70);
cout << "\nPreorder Traversal: ";
preorder(root);
cout << "\nInorder Traversal: ";
inorder(root);
cout << "\nPostorder Traversal: ";
postorder(root);
return 0;
}




