struct node{
int element;
node* left;
node* right;
};
typedef node* SET;
void INSERT(int x, SET* A){
node* pA = *A;
if (pA == NULL){
pA = new node;
pA->element = x;
pA->left = NULL;
pA->right = NULL;
}
else{
if (x < pA->element){
INSERT(x,&(pA->left));
}
else if (x>pA->element){
INSERT(x, &(pA->right));
}
}
}
int main(){
node* A = NULL;
INSERT(1,&A);
cout <<A->element<<endl;
return 0;
}
上面的代码是一个简单的插入方法,它将一个元素插入到 BST 中。当我访问 A-> 元素时,我只是不断获得段默认值。非常感谢您的回答。
编辑:
哇,这个指针的东西真的很混乱。所以当我做 node* pA = *A 时,我想我会创建一个指向 A 位置的指针。然后当我做 pA = new node 时,它会在 pA 指向的堆中创建一个节点对象,这是相同的作为A。我说错了吗?