2024-11-18 12:46:03 +01:00

28 lines
794 B
Java

package lab16_composite.ex3.algorithm;
import lab16_composite.ex3.component.Component;
import java.util.ArrayList;
import java.util.List;
public abstract class TraversalAlgorithm {
protected List<Component> successors = new ArrayList<>();
public Component search(Component root, String target) {
successors = new ArrayList<>();
successors.add(root);
while (true) {
if (successors.isEmpty()) {
return null;
}
Component component = successors.removeFirst();
if (component.getName().equals(target)) {
return component;
}
addSuccessor(component.getChildren());
}
}
protected abstract void addSuccessor(ArrayList<Component> newSuccessors);
}