Computer Science, asked by Srksharma, 1 year ago

Write algorithm and program that accepts any Tree as Input and Converts it into Binary Tree

Answers

Answered by sampathshetty
1
#include<stdio.h>#include<stdlib.h> /* A binary tree node has data, pointer to left child    and a pointer to right child */struct node {    int data;    struct node* left;    struct node* right;}; /* Helper function that allocates a new node with the   given data and NULL left and right pointers. */struct node* newNode(int data) {  struct node* node = (struct node*)                       malloc(sizeof(struct node));  node->data = data;  node->left = NULL;  node->right = NULL;     return(node);}  /* Change a tree so that the roles of the  left and     right pointers are swapped at every node.  So the tree...       4      / \     2   5    / \   1   3  is changed to...       4      / \     5   2        / \       3   1*/void mirror(struct node* node) {  if (node==NULL)     return;    else  {    struct node* temp;         /* do the subtrees */    mirror(node->left);    mirror(node->right);     /* swap the pointers in this node */    temp        = node->left;    node->left  = node->right;    node->right = temp;  }}   /* Helper function to test mirror(). Given a binary   search tree, print out its data elements in    increasing sorted order.*/void inOrder(struct node* node) {  if (node == NULL)     return;     inOrder(node->left);  printf("%d ", node->data);   inOrder(node->right);}    /* Driver <span title="" class="intexthighlight" id="BfiPe" style="line-height: 18.17px;" phasehl="km:en">program</span> to test mirror() */int main(){  struct node *root = newNode(1);  root->left        = newNode(2);  root->right       = newNode(3);  root->left->left  = newNode(4);  root->left->right = newNode(5);      /* Print inorder traversal of the input tree */  printf("\n Inorder traversal of the constructed tree is \n");  inOrder(root);     /* Convert tree to its mirror */  mirror(root);      /* Print inorder traversal of the mirror tree */  printf("\n Inorder traversal of the mirror tree is \n");    inOrder(root);     getchar();  return 0; 
Similar questions