Skip to content
Snippets Groups Projects
Commit aa6b2f31 authored by IrinaShcherbakova's avatar IrinaShcherbakova
Browse files

depth first search heuristic (H1)

parent 69f23402
No related branches found
No related tags found
No related merge requests found
package Heuristics;
import FaultTree.BasicEvent;
import FaultTree.FaultTree;
import FaultTree.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
public class DepthFirstHeuristic extends AbstractFaultTreeVisitor implements Heuristic {
private Map<BasicEvent, Integer> order;
private HashSet<FaultTree> visited;
private int counter;
@Override
public Map<BasicEvent, Integer> getOrder(FaultTree tree) {
//flush old values of order, visited and counter in case the same instance of DFS heuristic is used for multiple trees
order = new HashMap<>();
visited = new HashSet<>();
counter = 0;
visit(tree);
return this.order;
}
@Override
public void visitIntermediateEvent(IntermediateEvent event) {
if(visited.contains(event)){
return;
}
visited.add(event);
visit(event.left);
visit(event.right);
}
@Override
public void visitBasicEvent(BasicEvent event) {
if (!order.containsKey(event)) {
order.put(event, counter++);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment