class T_n { public: T_n(Type,T_n*, T_n*); T_n(); T_n* left() {return left_p;} T_n* right() {return right_p;} bool is_empty() {return empty;} Type info() {return data;} private: T_n* left_p; T_n* right_p; bool empty; Type data; }; T_n::T_n() { empty = true; left_p = nil; right_p = nil; } T_n::T_n(Type d, T_n* l=(T_n*)nil, T_n* r=(T_n*)nil) { empty=false; data=d; if (l != (T_n*)nil) { left_p = l; } else left_p = new T_n; if (r != (T_n*)nil) { right_p = r; } else right_p = new T_n; }