修改二进制树c++的元素

Modifying elements of a binary tree c++

本文关键字:元素 c++ 二进制 修改      更新时间:2023-10-16

我在修改二叉树的元素时遇到了一个问题。这是我得到的错误:读取位置0x00000018时发生访问冲突。我想我正在访问一个空指针,但我不知道如何解决这个问题。

这是我使用的代码:

void modifyStatus(nod* root)
{
if (root->info.st == done)
    root->info.st = reachedDest;
    modifyStatus(root->st);
    modifySatus(root->dr);
}

我必须指定"done"answers"reachedDest"是枚举的元素。

我想我正在访问一个空指针,但我不知道如何解决这个问题。

访问NULL之前,请检查指针:

void modifyStatus(nod* root) {
    if (!root) {
        return;
    }
    ...
}

注意,看起来像这个modifySatus(root->st);的调用看起来像C,而不是C++。在控制nod类的情况下,应该考虑将modifySatus作为成员函数:

root->modifyStatus();