微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决指针变量的地址和对象的地址在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 举报,一经查实,本站将立刻删除。