1
我想遍历多个列表来找到一个“目录”。 如果我有一个目录结构,如: /A/B/C搜索项目迭代通过多个列表
/A/d/F
看来,如果我找B或C的工作,但失败了d和F.我认为这是因为当它遇到一种情况时,它正在搜索一个列表并且它没有找到正确的目录,那么它不知道该返回什么(或者如果我取消注释返回NULL,它将返回null,我不会不想这样做,因为这并不意味着它没有技术上的发现)。
I.E.如果我搜索F,它将搜索A/B/C并且不知道要返回什么。
有没有办法阻止返回值,直到它找到一个目录或直到完成查找?
Directory* search_tree_for_dir(string dir_name) {
for(list<Directory*>::iterator iter = this->l_dir.begin(); iter != this->l_dir.end(); iter++) {
// Base case: if directory found then return
if((*iter)->name == dir_name){
return *iter;
}
if(*iter != NULL) {
return (*iter)->search_tree_for_dir(dir_name);
}
}
//return NULL;
}
一个简单的方法来做到这一点将是查找树遍历像后序遍历。链接:http://en.wikipedia.org/wiki/Tree_traversal#Post-order –