41 #ifdef PB_DS_CLASS_C_DEC
48 assert_valid(
const char* __file,
int __line)
const
50 PB_DS_DEBUG_VERIFY(m_p_root == 0 || m_p_root->m_p_prev_or_parent == 0);
53 assert_node_consistent(m_p_root, Single_Link_Roots, __file, __line);
54 assert_size(__file, __line);
55 assert_iterators(__file, __line);
61 assert_node_consistent(node_const_pointer p_nd,
bool single_link,
62 const char* __file,
int __line)
const
67 assert_node_consistent(p_nd->m_p_l_child,
false, __file, __line);
68 assert_node_consistent(p_nd->m_p_next_sibling, single_link, __file, __line);
71 PB_DS_DEBUG_VERIFY(p_nd->m_p_prev_or_parent == 0);
72 else if (p_nd->m_p_next_sibling != 0)
73 PB_DS_DEBUG_VERIFY(p_nd->m_p_next_sibling->m_p_prev_or_parent == p_nd);
75 if (p_nd->m_p_l_child == 0)
78 node_const_pointer p_child = p_nd->m_p_l_child;
81 node_const_pointer p_next_child = p_child->m_p_next_sibling;
82 PB_DS_DEBUG_VERIFY(!Cmp_Fn::operator()(p_nd->m_value, p_child->m_value));
83 p_child = p_next_child;
85 PB_DS_DEBUG_VERIFY(p_nd->m_p_l_child->m_p_prev_or_parent == p_nd);
91 assert_iterators(
const char* __file,
int __line)
const
99 assert_size(
const char* __file,
int __line)
const
101 PB_DS_DEBUG_VERIFY(size_from_node(m_p_root) == m_size);
105 typename PB_DS_CLASS_C_DEC::size_type
107 size_under_node(node_const_pointer p_nd)
108 {
return 1 + size_from_node(p_nd->m_p_l_child); }
111 typename PB_DS_CLASS_C_DEC::size_type
113 size_from_node(node_const_pointer p_nd)
118 ret += 1 + size_from_node(p_nd->m_p_l_child);
119 p_nd = p_nd->m_p_next_sibling;
125 typename PB_DS_CLASS_C_DEC::size_type
127 degree(node_const_pointer p_nd)
130 node_const_pointer p_child = p_nd->m_p_l_child;
134 p_child = p_child->m_p_next_sibling;
constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
constexpr const _Tp * begin(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to the first element of the initializer_list.
constexpr const _Tp * end(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to one past the last element of the initializer_list.