Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.function.BinaryOperator;
  3.  
  4. abstract class AbstractTree<T extends Number> {
  5. Node<T> root;
  6. BinaryOperator<T> adder;
  7. T sum;
  8. Comparator<T> comporator;
  9. T zero;
  10.  
  11. Node<T> getRoot() {
  12. return this.root;
  13. }
  14.  
  15. int getSize() {
  16. ArrayList<Node<T>> used = null;
  17. //used.add(this.root);
  18. //int count = 0;
  19. DFS(this, used, getRoot());
  20.  
  21. //return count;
  22. return used.size();
  23. }
  24.  
  25. void DFS(AbstractTree<T> tree, ArrayList<Node<T>> used, Node<T> vertex) {
  26. if (!used.contains(vertex)) {
  27. used.add(vertex);
  28. for (int i = 0; i < vertex.getChildren().size(); i++) {
  29. DFS(tree, used, (Node<T>) vertex.getChildren().toArray()[i]);
  30. }
  31. }
  32. }
  33.  
  34. T getSum() {
  35. ArrayList<Node<T>> used = null;
  36. int count = 0;
  37. DFS(this, used, getRoot());
  38.  
  39. for (int i = 0; i < used.size(); i++) {
  40. adder.apply(sum, used.get(i).getValue());
  41. }
  42.  
  43. return sum;
  44. }
  45.  
  46. abstract AbstractTree<T> removeSubtree(Node<T> rootSubtree);
  47.  
  48. abstract AbstractTree<T> maximize(int k);
  49.  
  50. abstract AbstractTree<T> maximize();
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement