7 p_left = std::make_unique<Node<T>>(*
other.p_left);
9 p_right = std::make_unique<Node<T>>(*
other.p_right);
16 m_data =
other.m_data;
17 m_height =
other.m_height;
19 p_left =
other.p_left ? std::make_unique<Node<T>>(*
other.p_left) :
nullptr;
20 p_right =
other.p_right ? std::make_unique<Node<T>>(*
other.p_right) :
nullptr;
37 return std::move(p_left);
42 return std::move(p_right);
62 p_left = std::move(
node);
72 p_right = std::move(
node);
std::unique_ptr< Node< T > > detach_left()
int get_height_val() const
void set_left(std::unique_ptr< Node< T > > node)
std::unique_ptr< Node< T > > detach_right()
Node & operator=(const Node &other)
const T & get_data() const
Node< T > * get_right() const
void set_right(std::unique_ptr< Node< T > > node)
Node< T > * get_left() const
void set_data(const T &val)
void set_height_val(int h)