Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.85 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4.  
  5. public class BinaryTree {
  6.   private Node root;
  7.  
  8.   public void insert(int value) {
  9.  
  10.     Node node = new Node(value);
  11.  
  12.     if (root == null) {
  13.       root = node;
  14.       return;
  15.     }
  16.  
  17.     insertNode(root, node);
  18.   }
  19.  
  20.   private void insertNode(Node node, Node nodeToInsert) {
  21.     if (node.getValue() > nodeToInsert.getValue()) {
  22.       if (node.getLeft() == null) {
  23.         node.setLeft(nodeToInsert);
  24.       } else {
  25.         insertNode(node.getLeft(), nodeToInsert);
  26.       }
  27.     }
  28.  
  29.     if (node.getValue() < nodeToInsert.getValue()) {
  30.       if (node.getRight() == null) {
  31.         node.setRight(nodeToInsert);
  32.       } else {
  33.         insertNode(node.getRight(), nodeToInsert);
  34.       }
  35.     }
  36.   }
  37.  
  38.   public Node getRoot() {
  39.     return root;
  40.   }
  41.  
  42.   public Node find(int value) {
  43.     Node node = root;
  44.  
  45.     boolean found = false;
  46.  
  47.     while (!found && node != null) {
  48.       if (node.getValue() == value) {
  49.         found = true;
  50.       }
  51.  
  52.       if (node.getValue() > value) {
  53.         node = node.getLeft();
  54.       }
  55.  
  56.       if (node.getValue() < value)
  57.         node = node.getRight();
  58.     }
  59.  
  60.     return node;
  61.   }
  62.  
  63.   public int findMin() {
  64.     Node node = root;
  65.  
  66.     if (node == null) {
  67.       return 0;
  68.     }
  69.  
  70.     while (node.getLeft() != null) {
  71.       node = node.getLeft();
  72.     }
  73.  
  74.     return node.getValue();
  75.   }
  76.  
  77.   public int findMax() {
  78.     Node node = root;
  79.  
  80.     if (node == null) {
  81.       return 0;
  82.     }
  83.  
  84.     while (node.getRight() != null) {
  85.       node = node.getRight();
  86.     }
  87.  
  88.     return node.getValue();
  89.   }
  90.  
  91.   public List<Node> traverseInOrder() {
  92.     List<Node> visitedNodes = new ArrayList<Node>();
  93.  
  94.     traverseInOrder(root, visitedNodes);
  95.  
  96.     return visitedNodes;
  97.   }
  98.  
  99.   public List<Node> traversePreOrder() {
  100.     List<Node> visitedNodes = new ArrayList<Node>();
  101.  
  102.     traversePreOrder(root, visitedNodes);
  103.  
  104.     return visitedNodes;
  105.   }
  106.  
  107.   public List<Node> traverPostOrder() {
  108.     List<Node> visitedNodes = new ArrayList<Node>();
  109.  
  110.     traversePostOrder(root, visitedNodes);
  111.  
  112.     return visitedNodes;
  113.   }
  114.  
  115.   private void traversePostOrder(Node node, List<Node> visited) {
  116.     if (node == null) {
  117.       return;
  118.     }
  119.     traverseInOrder(node.getLeft(), visited);
  120.     traverseInOrder(node.getRight(), visited);
  121.     visited.add(node);
  122.   }
  123.  
  124.   private void traversePreOrder(Node node, List<Node> visited) {
  125.     if (node == null) {
  126.       return;
  127.     }
  128.  
  129.     traverseInOrder(node.getLeft(), visited);
  130.     visited.add(node);
  131.     traverseInOrder(node.getRight(), visited);
  132.  
  133.   }
  134.  
  135.   public void traverseInOrder(Node node, List<Node> visited) {
  136.     if (node == null) {
  137.       return;
  138.     }
  139.  
  140.     visited.add(node);
  141.     traverseInOrder(node.getLeft(), visited);
  142.     traverseInOrder(node.getRight(), visited);
  143.  
  144.   }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement