Example #1
0
void tree_mirror(struct tree_node *tree)
{
    if(tree == NULL)
        return;

    struct tree_node *temp;

    temp = tree->left;
    tree->left = tree->right;
    tree->right = temp;

    tree_mirror(tree->left);
    tree_mirror(tree->right);
}
Example #2
0
void main()
{
    int a[30];
    int count = 0;
    struct tree_node *root = NULL;
    root = tree_add_node(1);
    root->left = tree_add_node(2);
    root->right = tree_add_node(3);
    root->left->left = tree_add_node(4);
    root->left->left->right = tree_add_node(10);
    root->left->right = tree_add_node(5);
    root->left->right->right = tree_add_node(50);
    root->right->left = tree_add_node(6);
    root->right->right = tree_add_node(7);

    struct tree_node *root2 = NULL;
    root2 = tree_add_node(1);
    root2->left = tree_add_node(2);
    root2->right = tree_add_node(3);
    root2->left->left = tree_add_node(4);
    root2->left->left->right = tree_add_node(10);
    root2->left->right = tree_add_node(5);
    root2->right->left = tree_add_node(6);
    root2->right->right = tree_add_node(7);
    //tree_preorder_print(root);
    tree_postorder_iterative_print(root);
    printf("Tree size(9) = %d\n", tree_size(root));
    printf("Height is %d\n", tree_height(root));
    printf("Check identical for same tree = %d\n", tree_check_identical(root, root2));
    tree_mirror(root);
    tree_postorder_iterative_print(root);
    tree_r2l_path(root, a, count);
}
Example #3
0
void tree_mirror(struct node* node)
{
   struct node *temp;

   if (node!=NULL)
   {

      tree_mirror(node->left);
      tree_mirror(node->right);


      // Swap the pointers in this node
      temp = node->left;
      node->left = node->right;
      node->right = temp;


   }
}