Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. import java.util.List;
  2. import java.util.Optional;
  3. import java.util.ArrayList;
  4.  
  5.  
  6.  
  7. class BinaryTree implements BinaryTreeInterface {
  8.  
  9. Node root;
  10. public boolean add(int value){
  11. Node newNode = new Node(value);
  12. Node tmpnode=root;
  13. if (root ==null){
  14. root = newNode;
  15. return true;
  16. }
  17. else
  18. while (true){
  19. if (root.getValue()==value)
  20. return false;
  21. if(tmpnode.nextLeft(value)){
  22. if (tmpnode.getValue()==value)
  23. return false;
  24. if(tmpnode.isLeaf())
  25. newNode.setLeft(tmpnode);
  26. return true;
  27. }
  28. else{
  29. if (tmpnode.getValue()==value)
  30. return false;
  31. if(tmpnode.isLeaf())
  32. newNode.setRight(tmpnode);
  33. return true;
  34.  
  35. }
  36. }
  37.  
  38.  
  39. }
  40.  
  41.  
  42. public Node getRoot(){
  43.  
  44. return root;
  45. }
  46.  
  47. public Optional<List<Integer>> getPathTo(int value){
  48. List<Integer> list= new ArrayList<>();
  49. Optional<List<Integer>> op=Optional.ofNullable(list);
  50. list.add(root.getValue());
  51. Node tmpnode=root;
  52.  
  53. while(tmpnode.isLeaf()==false){
  54. if(tmpnode.getValue()==value)
  55. return op;
  56. if(tmpnode.nextLeft(value)){
  57. list.add(tmpnode.getValue());
  58. tmpnode.getLeft();
  59. }
  60. else{
  61. list.add(tmpnode.getValue());
  62. tmpnode.getRight();
  63. }
  64.  
  65. }
  66.  
  67. return op;
  68.  
  69. }
  70.  
  71.  
  72.  
  73. public static void main(String args[]){
  74.  
  75. BinaryTree tree= new BinaryTree();
  76. tree.add(8);
  77. tree.add(15);
  78. tree.add(7);
  79. tree.getPathTo(7);
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement