このバイナリ検索ツリーでしばらく遊んでいますが、ツリーのプロパティを挿入または変更できないようです。
私の二分木は次のように定義されています:
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()
、メンバーのサイズが増加し、新しいノードが作成されると予想していましたが、取得できないようです。