c - 二叉树和指向指针的指针的图像

标签 c pointers binary-tree pointer-to-pointer

我正在制作一个简单的程序,如何制作一个二叉树,它是给定二叉树的图像 ..

    #include <stdio.h>
    #include <stdlib.h>

    typedef struct tree { int data; struct tree * left ; struct tree * right} tree;

 int main()  
 {  
    tree * t = malloc(sizeof(tree));

    t->data = 12;
    t->left = malloc(sizeof(tree));
    t->right = malloc(sizeof(tree));

    t->left->data = 13;
    t->right->data = 16;

    t->left->left =NULL;
    t->left->right =NULL;

    t->right->left =NULL;
    t->right->right =NULL;

    inorder(t);

    tree * x = NULL   ;
    reverse(t, &x);

    inorder(x);
    }

// reverse is to create image of binary tree 
    void reverse (tree * t , tree ** r){

    if(t == NULL) return;

    *r = (tree *)malloc(sizeof(tree));

    (*r)->data = t->data;
    (*r)->left = NULL;
    (*r)->right = NULL;

    reverse(t->right,&((*r)->left) );
    reverse(t->left,&((*r)->right));

    }

    void inorder(tree *t)
    { if(t==NULL) return;

       printf("%d ", t->data);
       inorder( t->left);
       inorder( t->right);
    }

这会导致段错误.. 请帮忙........

最佳答案

替换

reverse(t->right,((*r)->left) );
reverse(t->left,((*r)->right));

reverse(t->right, &((*r)->left));
reverse(t->left, &((*r)->right));

然后重试。

关于c - 二叉树和指向指针的指针的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755808/

相关文章:

c - 需要写入一个字符串常量,我该如何解决这个问题?

c++ - 预期的 ;在顶级声明符之后,xcode中的错误

c - C中的计时器实现,用于在计时器到期后删除链表中的记录

c - GDB:当您输入 "list"查看 C 代码时该怎么办,但它打印给您 "No source file for address __________"

c - 使用指针排序程序

c++删除指针问题,仍然可以访问数据

java - 二叉树如何促进将表达式编译为机器语言

algorithm - 二叉搜索树是如何创建的?

c - 读取/proc/pid/mem 文件不返回任何内容

c# - 构建二叉 TreeMap