指针变量的地址和对象的地址在c ++中如何相同BST实现

问题描述

void insertBST(BST &T,int newKey){
    Node *q = nullptr;
    Node *p = &T.root;
    while (p != nullptr){
        int i = 0;
        if (newKey == p->key){
            return;
        }
        q = p; // **q indicates parent node of P**
        if (newKey < p->key){
            p = p->leftNode;
        }
        else {
            p = p->rightNode;          
        }
    }

    Node newNode = getNode(); // **dont kNow why newNode's addr is same with q's**
    newNode.key = newKey;
    newNode.leftNode = nullptr;
    newNode.rightNode = nullptr;

    if (T.root.key == 0){
        T.root = newNode;
    }
    else if (newKey < q->key){
        q->leftNode = &newNode;
    }
    else if (newKey > q->key) {
        q->rightNode = &newNode;
    }
    return;
}

我正在尝试使用c ++实现二进制搜索树,但是我仍然坚持实现插入。 newNode'地址与指针'q'的地址相同。我不知道我做错了什么。我想念什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)