예제 #1
0
 // ------------------------------------------------------------
 public BTree<Integer> rndTree(int size) {
   itrWithRights = new Vector<BTreeItr<Integer>>();
   int i = 0;
   BTree<Integer> t = new BTree<Integer>();
   BTreeItr<Integer> ti;
   int[] tab = new int[size];
   for (i = 0; i < size; i++) tab[i] = i;
   shuffle(tab, rnd);
   for (i = 0; i < size; i++) {
     ti = t.root();
     while (!ti.isBottom()) {
       if (rnd.nextInt(2) == 0) ti = ti.left();
       else ti = ti.right();
     }
     ti.insert(new Integer(tab[i]));
     if (!ti.isRoot() && !ti.isLeftArc()) itrWithRights.add(ti.up());
   }
   return t;
 }