added lab16 ex3

This commit is contained in:
2024-11-18 12:46:03 +01:00
parent 5220b27146
commit 4af29e8f0f
7 changed files with 231 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
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);
}