42 inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
44 insert(const_reference r_value)
47 std::pair<point_iterator,
bool> ins_pair = insert_leaf_imp(r_value);
48 ins_pair.first.m_p_nd->m_special =
false;
50 splay(ins_pair.first.m_p_nd);
58 insert_leaf_imp(const_reference r_value)
62 if (base_type::m_size == 0)
63 return std::make_pair(base_type::insert_imp_empty(r_value),
true);
65 node_pointer p_nd = base_type::m_p_head->m_p_parent;
66 node_pointer p_pot = base_type::m_p_head;
73 return std::make_pair(point_iterator(p_nd),
false);
76 p_nd = p_nd->m_p_left;
79 p_nd = p_nd->m_p_right;
81 if (p_pot == base_type::m_p_head)
82 return std::make_pair(base_type::insert_leaf_new(r_value, base_type::m_p_head->m_p_right,
false),
true);
86 p_nd = p_pot->m_p_left;
88 return (std::make_pair(base_type::insert_leaf_new(r_value, p_pot, true), true));
90 while (p_nd->m_p_right != 0)
91 p_nd = p_nd->m_p_right;
93 return std::make_pair(this->insert_leaf_new(r_value, p_nd, false), true);
#define false
Definition: stdbool.h:35
#define true
Definition: stdbool.h:34
#define _GLIBCXX_DEBUG_ONLY(_Statement)
Definition: debug.h:63
#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
#define PB_DS_V2F(X)
Definition: container_base_dispatch.hpp:80
#define PB_DS_CHECK_KEY_DOES_NOT_EXIST(_Key)
Definition: container_base_dispatch.hpp:58