Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.List;
- import java.util.Optional;
- import java.util.ArrayList;
- class BinaryTree implements BinaryTreeInterface {
- Node root;
- public boolean add(int value){
- Node newNode = new Node(value);
- Node tmpnode=root;
- if (root ==null){
- root = newNode;
- return true;
- }
- else
- while (true){
- if (root.getValue()==value)
- return false;
- if(tmpnode.nextLeft(value)){
- if (tmpnode.getValue()==value)
- return false;
- if(tmpnode.isLeaf())
- newNode.setLeft(tmpnode);
- return true;
- }
- else{
- if (tmpnode.getValue()==value)
- return false;
- if(tmpnode.isLeaf())
- newNode.setRight(tmpnode);
- return true;
- }
- }
- }
- public Node getRoot(){
- return root;
- }
- public Optional<List<Integer>> getPathTo(int value){
- List<Integer> list= new ArrayList<>();
- Optional<List<Integer>> op=Optional.ofNullable(list);
- list.add(root.getValue());
- Node tmpnode=root;
- while(tmpnode.isLeaf()==false){
- if(tmpnode.getValue()==value)
- return op;
- if(tmpnode.nextLeft(value)){
- list.add(tmpnode.getValue());
- tmpnode.getLeft();
- }
- else{
- list.add(tmpnode.getValue());
- tmpnode.getRight();
- }
- }
- return op;
- }
- public static void main(String args[]){
- BinaryTree tree= new BinaryTree();
- tree.add(8);
- tree.add(15);
- tree.add(7);
- tree.getPathTo(7);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement