Question: Implement the following expression tree in JAVA that works with an expression that contains only variables or double values and supports operations +, -, *,
Implement the following expression tree in JAVA that works with an expression that contains only variables or double values and supports operations +, -, *, and / by providing two additional methods: void setVariable(String name, double value) set the variable name with a value with exception handling;package TreePackage;
public class ExpressionTree extends BinaryTree
public double evaluate() { return evaluate(getRootNode()); } // end evaluate
private double evaluate(BinaryNode
if (rootNode == null) result = 0; else if (rootNode.isLeaf()) { String variable = rootNode.getData(); result = getValueOf(variable); } else { double firstOperand = evaluate(rootNode.getLeftChild()); double secondOperand = evaluate(rootNode.getRightChild()); String operator = rootNode.getData(); result = compute(operator, firstOperand, secondOperand); } // end if
return result; } // end evaluate private double getValueOf(String variable) { // Strings allow multicharacter variables
double result = 0; if (variable.equals("a")) result = 2; else if (variable.equals("b")) result = 3; else if (variable.equals("c")) result = 4; else if (variable.equals("d")) result = 5; else if (variable.equals("e")) result = 2;
return result; } // end getValueOf
private double compute(String operator, double firstOperand, double secondOperand) { double result = 0; if (operator.equals("+")) result = firstOperand + secondOperand; else if (operator.equals("-")) result = firstOperand - secondOperand; else if (operator.equals("*")) result = firstOperand * secondOperand; else if (operator.equals("/")) result = firstOperand / secondOperand;
return result; } // end compute
// For testing purposes public void displayTree() { BinaryNode
private void postorder(BinaryNode
private void preorder(BinaryNode
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
