#include <stdio.h>
#include <stdlib.h>
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 odd, even;
void inorder(tnode*);
void postorder(tnode*);
void preorder(tnode*);
void preorder(tnode *node){
if (node)
{
if (node->data % 2 == 0)
even++;
else
odd++;
preorder(node->left);
preorder(node->right);
}
}
void postorder(tnode *node){
if (node)
{
postorder(node->left);
postorder(node->right);
if (node->data % 2 == 0)
even++;
else
odd++;
}
}
void inorder(tnode *node){
if (node)
{
inorder(node->left);
if (node->data % 2 == 0)
even++;
else
odd++;
inorder(node->right);
}
}
void task(tnode* total){
preorder(total);
printf("Total no.of odd data : %d\n", odd);
printf("Total no.of even data : %d\n", even);
}
int main()
{
tGrow();
task(root);
}
Comments