grazie mille, avevo già risolto da solo e dimenticato questo thread, magari valuta anche il mio codice se trovi qualcosa che può essere scritto meglio.
posto il codice così com'è con le mie strutture dati d'appoggio LinkedBinaryTree (albero binario) e BTPosition (che non è altro che un nodo per albero binario)
codice:
public static String evalExpr(Position<String>v, LinkedBinaryTree<String> T) { BTPosition<String> vv = T.checkPosition(v);
if(T.isExternal(v)) return v.element();
else {
String x,y;
x= evalExpr(T.left(vv),T);
y = evalExpr(T.right(vv),T);
int r=0;
if(v.element()=="*") r=Integer.parseInt((String) x)*Integer.parseInt((String)y);
if(v.element()=="-") r=Integer.parseInt((String) x)-Integer.parseInt((String)y);
if(v.element()=="+") r=Integer.parseInt((String) x)+Integer.parseInt((String)y);
if(v.element()=="/") r=Integer.parseInt((String) x)/Integer.parseInt((String)y);
return Integer.toString(r);
}
}