using namespace std;
#include <iostream>
class Node {
public:
int key;
Node* left_child;
Node* right_child;
Node(int k) {
key = k;
}
Node() {}
};
void preorderTraversal(Node* n)
{
if (n == NULL)
return;
cout << n->key << ", ";
preorderTraversal(n->left_child);
preorderTraversal(n->right_child);
}
void inorderTraversal(Node* n)
{
if (n == NULL)
return;
inorderTraversal(n->left_child);
cout << n->key << ", ";
inorderTraversal(n->right_child);
}
void postorderTraversal(Node* n)
{
if (n == NULL)
return;
postorderTraversal(n->left_child);
postorderTraversal(n->right_child);
cout << n->key << ", ";
}
int main() {
Node* root = new Node(1);
root->left_child = new Node(2);
root->right_child = new Node(3);
root->left_child->left_child = new Node(4);
root->left_child->right_child = new Node(5);
cout << "Preorder traversal:\n";
preorderTraversal(root);
cout << "\nInorder Traversal:\n";
inorderTraversal(root);
cout << "\nPostorder traversal:\n";
postorderTraversal(root);
}