修改二叉树c ++的元素

时间:2015-06-23 12:20:36

标签: c++ binary-tree

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

这是我使用的代码:

void modifyStatus(nod* root)
{

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

我必须指定“done”和“reachDest”是枚举的元素。

1 个答案:

答案 0 :(得分:1)

  

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

在访问之前检查NULL的指针:

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

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

root->modifyStatus();