public class mathNode { mathNode left, right, parent; String op; public mathNode(String Operator) { op = Operator; left = null; right = null; parent = null; } public mathNode insertUp(mathNode newParent, mathNode tree) { if (parent != null) { if (parent.left == this) { parent.left = newParent; } else if (parent.right == this) { parent.right = newParent; } } newParent.left = this; newParent.parent = this.parent; this.parent = newParent; if (tree == this) return newParent; return tree; } public float eval() { if (op.equals("+")) { return (left.eval() + right.eval()); } else if (op.equals("-")) { return (left.eval() - right.eval()); } else if (op.equals("x")) { System.out.println(left.op+":"+op); System.out.println(op+":"+right.op); return (left.eval() * right.eval()); } else if (op.equals("/")) { return (left.eval() / right.eval()); } else { try { // System.out.println(op); return (Float.parseFloat(op)); } catch (NumberFormatException e) { System.out.println("I don't understand this number: " + op+",\nso I can't parse this expression."); System.exit(0); return 0f; } } } }