46 assert_valid(
const char* __file,
int __line)
const
48 PB_DS_DEBUG_VERIFY(m_p_root == 0 || m_p_root->m_p_prev_or_parent == 0);
51 assert_node_consistent(m_p_root, Single_Link_Roots, __file, __line);
52 assert_size(__file, __line);
53 assert_iterators(__file, __line);
59 assert_node_consistent(node_const_pointer p_nd,
bool single_link,
60 const char* __file,
int __line)
const
65 assert_node_consistent(p_nd->m_p_l_child,
false, __file, __line);
66 assert_node_consistent(p_nd->m_p_next_sibling, single_link, __file, __line);
69 PB_DS_DEBUG_VERIFY(p_nd->m_p_prev_or_parent == 0);
70 else if (p_nd->m_p_next_sibling != 0)
71 PB_DS_DEBUG_VERIFY(p_nd->m_p_next_sibling->m_p_prev_or_parent == p_nd);
73 if (p_nd->m_p_l_child == 0)
76 node_const_pointer p_child = p_nd->m_p_l_child;
79 node_const_pointer p_next_child = p_child->m_p_next_sibling;
80 PB_DS_DEBUG_VERIFY(!Cmp_Fn::operator()(p_nd->m_value, p_child->m_value));
81 p_child = p_next_child;
83 PB_DS_DEBUG_VERIFY(p_nd->m_p_l_child->m_p_prev_or_parent == p_nd);
89 assert_iterators(
const char* __file,
int __line)
const
97 assert_size(
const char* __file,
int __line)
const
99 PB_DS_DEBUG_VERIFY(size_from_node(m_p_root) == m_size);
103 typename PB_DS_CLASS_C_DEC::size_type
105 size_under_node(node_const_pointer p_nd)
106 {
return 1 + size_from_node(p_nd->m_p_l_child); }
109 typename PB_DS_CLASS_C_DEC::size_type
111 size_from_node(node_const_pointer p_nd)
116 ret += 1 + size_from_node(p_nd->m_p_l_child);
117 p_nd = p_nd->m_p_next_sibling;
123 typename PB_DS_CLASS_C_DEC::size_type
125 degree(node_const_pointer p_nd)
128 node_const_pointer p_child = p_nd->m_p_l_child;
132 p_child = p_child->m_p_next_sibling;
constexpr const _Tp * begin(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to the first element of the initializer_list.
constexpr size_t size() const noexcept
Returns the total number of bits.
iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
constexpr const _Tp * end(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to one past the last element of the initializer_list. ...