【发布时间】:2014-01-11 05:01:59
【问题描述】:
我遇到了一个关于 n 叉树的问题。我想得到一个元素的指针,给定根指针和元素的名称。我尝试以递归方式编写它,但出现分段错误。
Node* findNode(Node* ptr, const string& name)
{
if(ptr->getNextSibling() == NULL)
return NULL;
if(ptr->getFirstChild() == NULL)
return NULL;
if(ptr->getName() == name)
return ptr;
else
{
findNode(ptr->getNextSibling(), name);
findNode(ptr->getFirstChild(), name);
}
}
n 叉树由指向其下一个子节点的指针、指向其下一个兄弟节点的指针、指向根节点的指针和数据组成。
【问题讨论】:
-
您正在测试
if(ptr->getNextSibling() == NULL)两次。也许您打算测试getFirstChild()? -
嗯,这是真的。但它仍然没有改变任何东西
-
它仍然不能使函数正常工作,但它应该停止段错误。