package es130901;

class TreeNode {
  int item;       // informazione del nodo
  TreeNode left;  // figlio sinistro
  TreeNode right; // figlio destro

  public TreeNode(int i) {
    item = i;     // mancano link
  }
  public void setLeft (TreeNode n) {
    if (left==null) left=n;
  }
  public void setRight (TreeNode n) {
    if (right==null) right=n;
    }
  public void myInsert(TreeNode n) {
    TreeNode n1; int l=0, r=0;
    if (left==null) { this.setLeft(n); return; }
    if (right==null) { this.setRight(n); return; }
    left.myInsert(n);
  }
  public void preOrder() {
    System.out.println(item);
    if (left!=null) left.preOrder();
    if (right!=null) right.preOrder();
  }
}

public class TreeMain {

  public static void main(String[] args) {
    int i=0, x;
    TreeNode root = new TreeNode(i);
    while (i<10){
      i=i+1;
      x=(int) (Math.random()*10);
      root.myInsert(new TreeNode(x));
      }
    System.out.println("Contenuto dell'albero: ");
    System.out.println("ad esempio, con visita in preordine\n");
    root.preOrder();
    //System.out.println("L'elemento "+x+" è contenuto "+root.quanteVolte(x)+" volte");
    }
}
