C++指针麻烦

mar*_*who 0 c++ pointers

我遇到以下代码的问题.我是一名java开发人员,试图自学c ++.主要是我在main()中的代码没有向根节点插入任何内容.谁能帮我.我确信我的指针还有一些东西.

class Node{
    public:
        Node* left;
        Node* right;
        int data;

    Node(int n){
        data = n;
        right = NULL;
        left = NULL;
    }
};

class BST{

    Node* root;

    public:

    BST(){
        root = NULL;
    }

    void insert(int e){
        pinsert(root, e);
    }

    void pinsert(Node* sr, int e){
        if(sr == NULL){
            sr = new Node(e);
        }
        else{
            if((sr->data) > e ){
                pinsert(sr->left, e);
            }
            else{
                pinsert(sr->right, e);
            }
        }
    }
};


int main(){
    BST tree;
    tree.insert(6);
    tree.insert(7);
}
Run Code Online (Sandbox Code Playgroud)

Die*_*ühl 6

您传递sr值并分配给它.这不会改变你root.通过引用传递它:

void pinsert( Node*& sr, int e)
Run Code Online (Sandbox Code Playgroud)