#include #include typedef struct tNode { int data; struct tNode *left; struct tNode *right; }tnode; tnode *initNode(int); void tGrow(); void task(tnode*); tnode *root; void tGrow(){ root = initNode(0); root->left = initNode(1); root->right = initNode(2); root->left->left = initNode(3); root->left->right = initNode(4); root->left->left->left = initNode(5); root->left->left->right = initNode(6); root->left->right->left = initNode(7); root->left->right->right = initNode(8); root->right->left = initNode(9); root->right->right = initNode(10); root->right->left->left = initNode(11); root->right->left->right = initNode(12); root->right->right->left = initNode(13); root->right->right->right = initNode(14); } tnode *initNode(int data){ tnode *temp; temp = (tnode *)malloc(sizeof(tnode)); temp->data = data; temp->right = NULL; temp->left = NULL; return temp; } int occu = 0; void inorder(tnode*); void postorder(tnode*); void preorder(tnode*); void preorder(tnode *node){ if (node) { if (node->data == 2) occu++; else preorder(node->left); preorder(node->right); } } void postorder(tnode *node){ if (node) { postorder(node->left); postorder(node->right); if (node->data == 2) occu++; } } void inorder(tnode *node){ if (node) { inorder(node->left); if (node->data == 2) occu++; else inorder(node->right); } } void task(tnode* total){ postorder(total); printf("No. of occurrences: %d\n", occu); } int main() { tGrow(); task(root); }