private static void traverse(C c, PrintWriter pw) {
		if (c.getLeft() == null && c.getRight() == null) {
			// if c is a word
			pw.print(" " + c.getLabel());
		}
		if (c.getLeft() != null && c.getRight() == null) {
			// if c is unary
			pw.print(" (" + c.getLabel());
			traverse(c.getLeft(), pw);
			pw.print(")");
		}
		if (c.getLeft() != null && c.getRight() != null) {
			// if binarys_
			pw.print(" (" + c.getLabel());
			traverse(c.getLeft(), pw);
			traverse(c.getRight(), pw);
			pw.print(")");
		}
		if (c.getLeft() == null && c.getRight() != null) {
			System.out.println("BigMistake");
		}
	}