Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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;
- }
- //**question 1**
- /*int sum=0;
- void inorder(tnode*);
- void postorder(tnode*);
- void preorder(tnode*);
- int main()
- {
- tGrow();
- task(root);
- return 0;
- }
- void preorder(tnode *node){
- if (node)
- {
- sum =sum+ node->data;
- preorder(node->left);
- preorder(node->right);
- }
- }
- void postorder(tnode *node){
- if (node)
- {
- postorder(node->left);
- postorder(node->right);
- sum += node->data;
- }
- }
- void inorder(tnode *node){
- if (node)
- {
- inorder(node->left);
- sum += node->data;
- inorder(node->right);
- }
- }
- void task(tnode* total){
- inorder(total);
- printf("Sum of all values : %d\n", sum);
- }*/
- //**question 2***//
- /*void inorder(tnode*);
- void postorder(tnode*);
- void preorder(tnode*);
- void preorder(tnode *node){
- if (node)
- {
- if (node->data == 2)
- printf("hello\t");
- else
- {
- printf("%d\t", node->data);
- }
- preorder(node->left);
- preorder(node->right);
- }
- }
- void postorder(tnode *node){
- if (node)
- {
- postorder(node->left);
- postorder(node->right);
- if (node->data == 2)
- printf("hello\t");
- else
- {
- printf("%d\t", node->data);
- }
- }
- }
- void inorder(tnode *node){
- if (node)
- {
- inorder(node->left);
- if (node->data == 2)
- printf("hello\t");
- else
- {
- printf("%d\t", node->data);
- }
- inorder(node->right);
- }
- }
- void task(tnode* total){
- printf("Inorder traversal: ");
- inorder(total);
- }
- int main()
- {
- tGrow();
- task(root);
- }*/
- //**question 3 **//
- /*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);
- }*/
- //** question 4 **//
- /*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);
- }*/
- //**question 5 **
- /*void inorder(tnode*);
- void postorder(tnode*);
- void preorder(tnode*);
- void preorder(tnode *node){
- if (node)
- {
- if (node->data == 2)
- node->data = -1;
- printf("%d\t", node->data);
- preorder(node->left);
- preorder(node->right);
- }
- }
- void postorder(tnode *node){
- if (node)
- {
- postorder(node->left);
- postorder(node->right);
- if (node->data == 2)
- node->data = -1;
- printf("%d\t", node->data);
- }
- }
- void inorder(tnode *node){
- if (node)
- {
- inorder(node->left);
- if (node->data == 2)
- node->data = -1;
- printf("%d\t", node->data);
- inorder(node->right);
- }
- }
- void task(tnode* total){
- printf("Preorder traversal:");
- postorder(total);
- }
- int main()
- {
- tGrow();
- task(root);
- }*/
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment