Files
unisa_strutture_dati_2013_2014/utility/euler_tour/expressions/StringExpressionTour.java

46 lines
1.0 KiB
Java

package utility.euler_tour.expressions;
import utility.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<ExpressionTerm,String> {
public String execute(BinaryTree<ExpressionTerm> T) {
init(T);
return eulerTour(T.root());
}
protected void visitLeft(Position<ExpressionTerm> v, TourResult<String> r) {
if (tree.isInternal(v)) {
r.out = new String("(");
}else {
r.out = new String("");
}
}
protected void visitBelow(Position<ExpressionTerm> v, TourResult<String> r) {
if (tree.isInternal(v)) {
r.out += r.left;
}
r.out += v.element();
}
protected void visitRight(Position<ExpressionTerm> v,TourResult<String> r) {
if (tree.isInternal(v)) {
r.out += r.right;
r.out += ")";
}
}
}