0
我有以下一段代码。它旨在首先深入遍历[附加截图] Tree结构。您可以看到,我感兴趣的是突出显示的绿色条目 - >Has Class(DatasetType)此树状结构的节点。该树结构受到客户添加新节点的影响。所以,我必须遍历Tree结构来找到我感兴趣的节点。我已经制定了下面的代码。但是我可以看到它确定了我感兴趣的节点。无法退出递归
但是,它并不止于此。它正在继续到下一个兄弟,即Has Class(EPMJob)。我希望我的处理停止。我非常肯定,我的回报方式缺少一些东西。但不能够针点。
任何输入是最受欢迎的。
tag_t findHasTypeDatasetNodeInAMTree(tag_t amTreeNode)
{
CharPointer nodeName;
Response stat = askRuleName(amTreeNode, &nodeName);
CharPointer nodeArgument;
stat = askRuleArg(amTreeNode, &nodeArgument);
if(tc_strcmp(nodeName.getString(), "Has Class") == 0 && tc_strcmp(nodeArgument.getString(), "DatasetType") == 0)
{
return amTreeNode;
}
int numChildNodes = 0;
TagPointer childNodes;
stat = askChildren(amTreeNode, &numChildNodes, &childNodes);
if(numChildNodes == 0)
{
return NULLTAG;
}
// The following is the piece that needs attention.
// Do not want to NULL check here though
for(int inx = 0; inx < numChildNodes; ++inx)
{
findHasTypeDatasetNodeInAMTree(childNodes[inx]);
}
return NULLTAG;
}