jeudi 21 juillet 2016

malloc in pointer received as argument

I'm implementing an binary search tree but for some reasons I 'm not able to add a node

my: input was :

a.value = 5;
add_bst_node(&t,a); 

mystructures:

typedef struct BST_node{
 entity value;
 struct BST_node* left;
 struct BST_node* right;
}BST_node;

typedef struct BST_tree{
 BST_node* root;
}BST_tree;

my code for add a node:

void add_bst_node2(BST_node* root,entity* e){
 if(!root){
  root = (BST_node*)malloc(sizeof(BST_node));
  root->value = *e;
  root->left = NULL;
  root->right = NULL;
  return;
 }
 else if(great_than(&root->value,e))
  add_bst_node2(root->left,e);
 else
  add_bst_node2(root->right,e);
 }

 void add_bst_node(BST_tree* t,entity e){
  add_bst_node2(t->root,&e);
  printf("%dn",t->root==NULL);
 }

Someone can explayn why I'can't add a node?

Aucun commentaire:

Enregistrer un commentaire