content: /*
   * To change this license header, choose License Headers in Project Properties.
   * To change this template file, choose Tools | Templates
   * and open the template in the editor.
   */
  
  /**
   *
   * @author miqdad
   */
  class Node {
  
      Node left, right;
      int value;
  
      public Node(int value) {
          this.value = value;
      }
  
      public Node search(int value) {
          if (this.value == value) {
              return this;
          } else if (value < this.value && this.left != null) {
              this.left.search(value);
          } else if (value > this.value && this.right != null) {
              this.right.search(value);
          }
  
          return null;
      }
  
      private void visit() {
          if (this.left != null) {
              this.left.visit();
          }
          System.out.print(this.value + " ");
          if (this.right != null) {
              this.right.visit();
          }
      }
  
      private void addNode(Node node) {
          if (node.value < this.value) {
              if (this.left == null) {
                  this.left = node;
              } else {
                  this.left.addNode(node);
              }
          } else {
              if (this.right == null) {
                  this.right = node;
              } else {
                  this.right.addNode(node);
              }
          }
      }
  }
  
  class Tree {
  
      Node root;
  
      private void addValue(int value) {
          Node node = new Node(value);
          if (this.root == null) {
              this.root = node;
          } else {
              this.root.addNode(node);
          }
      }
  
      private void binaryTreeSort() {
          this.root.visit();
      }
  }
  
  public class BinaryTree {
  
      public static void main(String[] args) {
          int[] nums = { 3, 2, 5, 6, 7, 1, 9, 0 };
          Tree tree = new Tree();
          for (int n : nums) {
              tree.addValue(n);
          }
  
          tree.binaryTreeSort();
          System.out.println("");
      }
  }
  