package euler_tour.expressions; import euler_tour.EulerTour; import position.Position; import tree.binarytree.BinaryTree; /** * Created with MONSTER. * User: xgiovio * Date: 27/04/2014 * Time: 13:09 */ public class EvaluateExpressionTour extends EulerTour { public Integer execute(BinaryTree T) { init(T); return eulerTour(tree.root()); } protected void visitRight(Position v, TourResult r) { ExpressionTerm term = v.element(); if (tree.isInternal(v)) { ExpressionOperator op = (ExpressionOperator) term; op.setOperands(r.left, r.right); } r.out = term.getValue(); } }