/*****************************  TraverseTest.java  ****************************/
                                                         //         '/'
import AlgoTools.IO;                                     //      /       \
                                                         //      +       -
/** Traversierungen des binaeren Baums mit Operanden in  //    /   \   /   \
 *  den Blaettern und Operatoren in den inneren Knoten:  //    F   *   X   Y
 */                                                      //       / \
                                                         //       A B
public class TraverseTest {

    public static void main(String[] argv) {

        VerweisBaum a     = new VerweisBaum(new Character('A'));
        VerweisBaum b     = new VerweisBaum(new Character('B'));
        VerweisBaum mal   = new VerweisBaum(a, new Character('*'), b);
        VerweisBaum f     = new VerweisBaum(new Character('F'));
        VerweisBaum plus  = new VerweisBaum(f, new Character('+'), mal);
        VerweisBaum x     = new VerweisBaum(new Character('X'));
        VerweisBaum y     = new VerweisBaum(new Character('Y'));
        VerweisBaum minus = new VerweisBaum(x, new Character('-'), y);
        VerweisBaum durch = new VerweisBaum(plus, new Character('/'), minus);

        IO.print("Preorder:        ");
        Traverse.preorder(durch);         // Ausgabe: /+F*AB-XY
        IO.println();

        IO.print("Inorder:         ");
        Traverse.inorder(durch);          // Ausgabe: F+A*B/X-Y
        IO.println();

        IO.print("Postorder:       ");
        Traverse.postorder(durch);        // Ausgabe: FAB*+XY-/
        IO.println();

        IO.print("Klammer-Inorder: ");
        Traverse.klammerinorder(durch);   // Ausgabe: ((F+(A*B))/(X-Y))
        IO.println();

        IO.print("Tiefensuche:     ");
        TiefenSuche.tiefenSuche(durch);   // Ausgabe: /+F*AB-XY
        IO.println();


        IO.print("Breitensuche:    ");
        BreitenSuche.breitenSuche(durch); // Ausgabe: /+-F*XYAB
        IO.println();
    }
}
