public class TreeTest {

	public BinaryTree<String> getBaum1() {
		BinaryTree<String> baum = new BinaryTree<String>(new String("*"));
		baum.getLeftTree().setContent(new String("7"));
		baum.getRightTree().setContent(new String("+"));
		baum.getRightTree().getLeftTree().setContent(new String("8"));
		baum.getRightTree().getRightTree().setContent(new String("-"));
		baum.getRightTree().getRightTree().getLeftTree().setContent(new String("7"));
		baum.getRightTree().getRightTree().getRightTree().setContent(new String("/"));
		baum.getRightTree().getRightTree().getRightTree().getLeftTree().setContent(new String("6"));
		baum.getRightTree().getRightTree().getRightTree().getRightTree().setContent(new String("3"));
		return baum;
	}

	public BinaryTree<String> getBaum2() {
		BinaryTree<String> baum = new BinaryTree<String>(new String("+"));
		baum.getLeftTree().setContent(new String("*"));
		baum.getRightTree().setContent(new String("-"));
		baum.getLeftTree().getLeftTree().setContent(new String("-"));
		baum.getLeftTree().getRightTree().setContent(new String("2"));
		baum.getRightTree().getLeftTree().setContent(new String("+"));
		baum.getRightTree().getRightTree().setContent(new String("7"));
		baum.getLeftTree().getLeftTree().getLeftTree().setContent(new String("3"));
		baum.getLeftTree().getLeftTree().getRightTree().setContent(new String("5"));
		baum.getRightTree().getLeftTree().getLeftTree().setContent(new String("3"));
		baum.getRightTree().getLeftTree().getRightTree().setContent(new String("2"));
		return baum;
	}

	public String inOrderTraversierung(BinaryTree<String> baum) {
		String ausgabe = new String();
		String content = baum.getContent();
		if (!baum.getLeftTree().isEmpty()) {
			ausgabe = ausgabe + this.inOrderTraversierung(baum.getLeftTree());
		}
		if (content != null) { //NRW speziell
			ausgabe = ausgabe + content;
		}
		if (!baum.getRightTree().isEmpty()) {
			ausgabe = ausgabe + this.inOrderTraversierung(baum.getRightTree());
		}
		return ausgabe;
	}

	public String inOrderTraversierungKlammern(BinaryTree<String> baum) {
		String ausgabe = new String();
		String content = baum.getContent();
		if (content.contentEquals("*") || content.contentEquals("+") || content.contentEquals("-") || content.contentEquals("/")) {
			ausgabe = ausgabe + "(";
		}
		if (!baum.getLeftTree().isEmpty()) {
			ausgabe = ausgabe + this.inOrderTraversierungKlammern(baum.getLeftTree());
		}
		if (content != null) { //NRW speziell
			ausgabe = ausgabe + content;
		}
		if (!baum.getRightTree().isEmpty()) {
			ausgabe = ausgabe + this.inOrderTraversierungKlammern(baum.getRightTree());
		}
		if (content.contentEquals("*") || content.contentEquals("+") || content.contentEquals("-") || content.contentEquals("/")) {
			ausgabe = ausgabe + ")";
		}
		return ausgabe;
	}

	public static void main(String[] args) {
		TreeTest treeTest = new TreeTest();
		BinaryTree<String> testbaum1 = treeTest.getBaum1();
		System.out.println(treeTest.inOrderTraversierung(testbaum1));
		System.out.println(treeTest.inOrderTraversierungKlammern(testbaum1));
		BinaryTree<String> testbaum2 = treeTest.getBaum2();
		System.out.println(treeTest.inOrderTraversierung(testbaum2));
		System.out.println(treeTest.inOrderTraversierungKlammern(testbaum2));
	}

}
