Пример #1
0
int TreeNode::Evaluate() const { //Evaluates tree

    switch(operation) { //switch statement to decide what operator is being used
        case '+': return left->Evaluate() + right->Evaluate();
        case '-': return left->Evaluate() - right->Evaluate();
        case '*': return left->Evaluate() * right->Evaluate();
        case '/': return left->Evaluate() / right->Evaluate();
    }
    return data;
}
Пример #2
0
int main() {                       //main program
    NodePtr root = createExpressionTree();
    std::cout << "The Answer is: " << root->Evaluate();

    std::cout << "\nIn InOrder     ";
    root->InOrder();

    std::cout << "\nIn PreOrder  ";
    root->PreOrder();

    std::cout << "\nIn PostOrder ";
    root->PostOrder();
}