float GetValue(TTree * node)
{
switch(node->class_)
{
case VALUE:
return node->value;
break;
case OPERATION:
float v1 = GetValue(node->sub[0]);
float v2 = GetValue(node->sub[1]);
switch(node->subclass_)
{
case OPERATION_PLUS:
return v1+v2;
case OPERATION_MINUS:
return v1=v2;
}
break;
}
}
Вот так будет быстрее и надежнее