我正在使用树分解,并试图在树节点中找到一个顶点。
如果找到顶点,我想返回该节点的索引。我正在尝试以 DFS 方式遍历树。我能够遍历所有节点,但是一旦找到具有顶点的节点,它就不会返回索引。
以下是我尝试过的。有人可以指出我哪里出错了吗?
Node* Tree::traversing(Node* node, int v) {
vector<Node*> s;
s.push_back(node);
while(!s.empty()) {
Node* nn = s.back();
s.pop_back();
int i = nn->point_in_bag(v);
if(i != -1) { return nn;}
for(int i=0; i<node->children.size(); i++) {
Node* n = node->children[i];
s.push_back(n);
}
}
}
如果找到并且未找到顶点,该函数point_in_bag
将返回正整数。-1