我正在制作一个如何制作二叉树的简单程序,它是给定二叉树的图像..
#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);
}
这给出了分段错误 ..请帮助........