This commit is contained in:
Matthias
2017-07-27 19:31:54 +02:00
parent 19d695d4d8
commit 8d43a1c3c2
14 changed files with 1027 additions and 41 deletions
+11 -3
View File
@@ -17,15 +17,23 @@ namespace wep {
template<typename VisitType>
void wepDepthFirstSearch(wfr::wep::AbstractWepNode* startNode, const VisitType& visitFunction,
std::set<wfr::wep::AbstractWepNode*>& visitedNodes = std::set<wfr::wep::AbstractWepNode*>()) {
visitedNodes.insert(startNode);
std::set<wfr::wep::AbstractWepNode*>* visitedNodes = nullptr) {
bool deleteVisitedNodeSet = false;
if (visitedNodes == nullptr) {
visitedNodes = new std::set<wfr::wep::AbstractWepNode*>();
deleteVisitedNodeSet = true;
}
visitedNodes->insert(startNode);
if (visitFunction(startNode)) {
for (auto c : startNode->getSuccessors()) {
if (visitedNodes.find(c) == visitedNodes.end()) {
if (visitedNodes->find(c) == visitedNodes->end()) {
wepDepthFirstSearch(c, visitFunction, visitedNodes);
}
}
}
if (deleteVisitedNodeSet) {
delete visitedNodes;
}
}