Advertisement
elephantsarecool

BinaryTree

Nov 13th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.46 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Tree {
  4.  
  5.     Node root;
  6.  
  7.     public void add(int value) {
  8.         root = addRecursive(root, value);
  9.     }
  10.  
  11.     private Node addRecursive(Node current, int value) {
  12.         if (current == null) {
  13.             return new Node(value);
  14.         }
  15.         if (value < current.value) {
  16.             current.left = addRecursive(current.left, value);
  17.         } else if (value > current.value) {
  18.             current.right = addRecursive(current.right, value);
  19.         }
  20.  
  21.         return current;
  22.     }
  23.  
  24.     public boolean isEmpty() {
  25.         return root == null;
  26.     }
  27.  
  28.     public void dfs(Node node) {
  29.         if (node != null) {
  30.             System.out.print(" " + node.value);
  31.             dfs(node.left);
  32.             dfs(node.right);
  33.         }
  34.     }
  35.  
  36.     public void bfs() {
  37.         if (root == null) {
  38.             return;
  39.         }
  40.  
  41.         Queue<Node> nodes = new LinkedList<>();
  42.         nodes.add(root);
  43.  
  44.         while (!nodes.isEmpty()) {
  45.  
  46.             Node node = nodes.remove();
  47.  
  48.             System.out.print(" " + node.value);
  49.  
  50.             if (node.left != null) {
  51.                 nodes.add(node.left);
  52.             }
  53.  
  54.             if (node.right!= null) {
  55.                 nodes.add(node.right);
  56.             }
  57.         }
  58.     }
  59.  
  60. }
  61.  
  62. class Node {
  63.  
  64.     int value;
  65.     Node left;
  66.     Node right;
  67.  
  68.     Node(int value) {
  69.         this.value = value;
  70.         right = null;
  71.         left = null;
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement