package info3;/** * * Info 3 Blatt 3, Aufgabe 2 * * @author fieberfn, hatjeki * * <p> * Class that implements a binary search tree. Elements smaller than the one * looked at come to the left. If you insert an element already contained it * will come to the right. Implemented functions are contains and insert. * Contains and insert are implemented with variable parameter lists. * </p> */public class BinarySearchTree<T extends Comparable<T>> { private BinaryTree<T> anchor; BinarySearchTree() { } public void insert(T Item) { if (anchor == null) { anchor = new BinaryTree<T> (Item); } else { insert(Item, anchor); } } private void insert (T Item, BinaryTree<T> tree) { if (tree != null) { if (Item.compareTo(tree.Item) < 0) { System.out.println(Item+" ist kleiner als "+tree.Item); } else { System.out.println(Item+" ist groesser als "+tree.Item); } } if (tree == null) { System.out.println("Creating new Node in Tree"); tree = new BinaryTree<T> (Item); } else if (Item.compareTo(tree.Item) < 0) { System.out.println("Inserting "+Item+" to left"); insert (Item, tree.left); } else { System.out.println("Inserting "+Item+" to right"); insert (Item, tree.right); } }// public T contains (T param) {// T foo;// return foo;// } public void insert (T... params) { for (T element : params) { insert (element); } }// public T[] contains (T... params) {// T[] foo;// return foo;// } public void putInorder () { putInorder(anchor); } private void putInorder (BinaryTree<T> tree) { if (tree != null) { System.out.println("tree: " + tree); System.out.println("tree.left: " + tree.left); System.out.println("tree.right: " + tree.right); putInorder(tree.left); System.out.println(tree.Item); putInorder(tree.right); } } /** * @param args */ public static void main(String[] args) { BinarySearchTree<Integer> Baum = new BinarySearchTree<Integer>();// for (int i = 0; i <= 2; i++) {// Baum.insert(i + 1);// } Baum.insert(Integer.valueOf(1)); Baum.insert(Integer.valueOf(7)); Baum.insert(Integer.valueOf(5)); Baum.insert(Integer.valueOf(4)); Baum.insert(Integer.valueOf(2)); Baum.putInorder(); }}