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:11 */ public class StringExpressionTour extends EulerTour { public String execute(BinaryTree T) { init(T); return eulerTour(T.root()); } protected void visitLeft(Position v, TourResult r) { if (tree.isInternal(v)) { r.out = new String("("); }else { r.out = new String(""); } } protected void visitBelow(Position v, TourResult r) { if (tree.isInternal(v)) { r.out += r.left; } r.out += v.element(); } protected void visitRight(Position v,TourResult r) { if (tree.isInternal(v)) { r.out += r.right; r.out += ")"; } } }