import gdi.Gdi1;
/** Übungen zu Grundlagen der Informatik
* Kapitel 10 Aufgabe
4 * @author Thomas Walter
*/
public class Uebung104 {
public static void main(String args[]) {
System.out.print("\n Bitte Groesse des Baumes eingeben: ");
int n = Gdi1.readInt();
TreeNode wurzel = RandomTree.makeRandomTree(n);
System.out.println();
preOrder(wurzel);
System.out.println();
postOrder(wurzel);
System.out.println();
inOrder(wurzel);
System.out.print("\n bitte gesuchten Wert eingeben: ");
Integer gesucht = new Integer(Gdi1.readInt());
search(wurzel, gesucht);
if (stufe == -1)
System.out.println("\n gesuchter Wert nicht in Baum!\n");
else
System.out.println(
"\n Gesuchter Wert ist von der Stufe " + stufe + "\n");
} // main
private static void action(TreeNode node) {
System.out.println(node.e);
} // action
private static void preOrder(TreeNode treeNode) {
if (treeNode != null) {
action(treeNode);
preOrder(treeNode.l);
preOrder(treeNode.r);
}
} // preOrder
private static void postOrder(TreeNode treeNode) {
if (treeNode != null) {
postOrder(treeNode.l);
postOrder(treeNode.r);
action(treeNode);
}
} // postOrder
private static void inOrder(TreeNode treeNode) {
if (treeNode != null) {
inOrder(treeNode.l);
action(treeNode);
inOrder(treeNode.r);
}
} // inOrder
private static void search(TreeNode wurzel, Integer o) {
if (wurzel == null) {
stufe = -1;
return;
}
stufe++;
if (wurzel.e.equals(o))
return;
if (Gdi1.leq((Integer) wurzel.e, o)) {
search(wurzel.r, o);
return;
} else {
search(wurzel.l, o);
return;
}
} // search
private static int stufe = -1;
} // Uebung104