私はツリー分解に取り組んでおり、ツリー ノードで頂点を見つけようとしています。
頂点が見つかった場合、そのノードのインデックスを返したいです。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
。