#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;
}
void inorder(tnode*);
void postorder(tnode*);
void preorder(tnode*);
void preorder(tnode *node){
if (node)
{
if (node->data % 2 != 0)
printf("%d\t", node->data);
else
preorder(node->left);
preorder(node->right);
}
}
void postorder(tnode *node){
if (node)
{
postorder(node->left);
postorder(node->right);
if (node->data % 2 != 0)
printf("%d\t", node->data);
}
}
void inorder(tnode *node){
if (node)
{
inorder(node->left);
if (node->data % 2 != 0)
printf("%d\t", node->data);
else
inorder(node->right);
}
}
void task(tnode* total){
printf("Postorder traversal (odd numbers only):");
postorder(total);
}
int main()
{
tGrow();
task(root);
}
Comments