/****************************************************** Name: Filename: Tree.cpp ******************************************************/ #include "Tree.h" // Computes the value of an expression subtree // The depth is needed to properly space the information double CTree::Evaluate(int depth) { double result; int i; switch(type) { case TYPE_LEAF: // This is a leaf; just a value here for(i=0;iEvaluate(depth+1); // Evaluate left subtree for(i=0;iEvaluate(depth+1); // Evaluate right subtree and multiply with left subtree break; case TYPE_ADD_NODE: // This is a node; add left subtree to right subtree result=left->Evaluate(depth+1); // Evaluate left subtree for(i=0;iEvaluate(depth+1); // Evaluate right subtree and add to left subtree break; } return result; } // Initializing each variable CTree::CTree() { left=NULL; right=NULL; value=0; type=TYPE_LEAF; }