我一直在玩这个二叉搜索树一段时间,但我似乎无法插入或更改任何树属性。
我的二叉树定义为:
struct tree{
Node * root;
int size;
};
struct node{
int value;
Node * left;
Node * right;
};
因此我的二叉树由节点组成。现在不起作用的位:
void add(int value, Tree *t){
//1. if root is null create root
if(t->root == NULL){
t->root = nodeCreate(value);
t->size ++;
return;
}
Node * cursor = t->root;
while(cursor != NULL){
if(value == cursor->value){
printf("value already present in BST\n");
return;
}
if(value < cursor->value){
cursor = cursor->left;
}
if(value > cursor->value){
cursor = cursor->right;
}
}
//value not found in BST so create a new node.
cursor = nodeCreate(value);
t->size = t->size + 1;
}
有人可以告诉我哪里出错了吗?我预计调用add()
会增加成员的大小以及创建新节点,但我似乎无法得到它。