typedef struct _Tree{
int val;
struct _Tree *left;
struct _Tree *right;
}Tree;
Tree
ここにポインターはありますか?valのアドレスを指していますか?
と定義したらどうTree *node
ですか?node
のアドレスを指しているポインタですかTree
?
を挿入したい場合、またはval
を使用する必要がありますinsert(&node)
かinsert(node)
?
void insert_Tree(Tree **root, int key){
if((*root) == NULL){
(*root) = (Tree *)malloc(sizeof(Tree));
(*root)->val = key;
(*root)->left = NULL;
(*root)->right = NULL;
cout<<"insert data "<<key<<endl;
}else if(key< (*root)->val){
insert_Tree(&(*root)->left, key);
cout<<"go left"<<endl;
}else{
insert_Tree(&(*root)->right, key);
cout<<"go right"<<endl;
}
}
int main(){
Tree *root = NULL;
insert_Tree(&root, 10);
insert_Tree(&root, 20);
insert_Tree(&root, 5);
insert_Tree(&root, 100);
}