48 if (base_type::join_prep(other) ==
false)
55 node_pointer p_target_r = other.leftmost(other.m_p_head);
57 other.splay(p_target_r);
62 p_target_r->m_p_left = base_type::m_p_head->m_p_parent;
65 p_target_r->m_p_left->m_p_parent = p_target_r;
67 base_type::m_p_head->m_p_parent = p_target_r;
68 p_target_r->m_p_parent = base_type::m_p_head;
70 this->apply_update(p_target_r, (node_update*)this);
71 base_type::join_finish(other);
85 if (base_type::split_prep(r_key, other) == false)
92 node_pointer p_upper_bound = this->upper_bound(r_key).m_p_nd;
98 node_pointer p_new_root = p_upper_bound->m_p_left;
101 base_type::m_p_head->m_p_parent = p_new_root;
102 p_new_root->m_p_parent = base_type::m_p_head;
103 other.m_p_head->m_p_parent = p_upper_bound;
104 p_upper_bound->m_p_parent = other.m_p_head;
105 p_upper_bound->m_p_left = 0;
106 this->apply_update(p_upper_bound, (node_update*)this);
107 base_type::split_finish(other);
#define false
Definition: stdbool.h:35
#define _GLIBCXX_DEBUG_ASSERT(_Condition)
Definition: debug.h:61
#define PB_DS_CLASS_C_DEC
Definition: bin_search_tree_.hpp:71
#define PB_DS_CLASS_T_DEC
Definition: bin_search_tree_.hpp:67
return(unsigned int) __res
#define PB_DS_ASSERT_VALID(X)
Definition: binary_heap_.hpp:324