-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexprtreenode.cpp
36 lines (32 loc) · 1.06 KB
/
exprtreenode.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* Do NOT add/remove any includes statements from this header file */
/* unless EXPLICTLY clarified on Piazza. */
#include "exprtreenode.h"
ExprTreeNode::ExprTreeNode(){
type = "equal";
val = nullptr;
evaluated_value = nullptr;
left = nullptr;
right = nullptr;
}
ExprTreeNode::ExprTreeNode(string t, UnlimitedInt *v){
type = t;
UnlimitedInt* one = new UnlimitedInt(1);
val = new UnlimitedRational(new UnlimitedInt(v->get_array(),v->get_capacity(),v->get_sign(),v->get_size()),new UnlimitedInt(1));
evaluated_value = new UnlimitedRational(v,one);
left = nullptr;
right = nullptr;
delete one;
}
ExprTreeNode::ExprTreeNode(string t, UnlimitedRational *v){
type = t;
val = new UnlimitedRational(v->get_p(),v->get_q());
evaluated_value = new UnlimitedRational(v->get_p(),v->get_q());
left = nullptr;
right = nullptr;
}
ExprTreeNode::~ExprTreeNode(){
if(val != nullptr) delete val;
if(evaluated_value!=nullptr) delete evaluated_value;
if(left!=nullptr) delete left;
if(right!=nullptr) delete right;
}