PB_DS_CLASS_T_DEC typename PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC:: recursive_count_leafs(node_const_pointer p_nd, const char* __file, int __line) { if (p_nd == 0) return (0); if (p_nd->m_type == leaf_node) return (1); PB_DS_DEBUG_VERIFY(p_nd->m_type == i_node); size_type ret = 0; for (typename inode::const_iterator it = static_cast<inode_const_pointer>(p_nd)->begin(); it != static_cast<inode_const_pointer>(p_nd)->end(); ++it) ret += recursive_count_leafs(*it, __file, __line); return ret; }
PB_DS_CLASS_T_DEC typename PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC:: recursive_count_leafs(const_node_pointer p_nd) { if (p_nd == NULL) return (0); if (p_nd->m_type == pat_trie_leaf_node_type) return (1); _GLIBCXX_DEBUG_ASSERT(p_nd->m_type == pat_trie_internal_node_type); size_type ret = 0; for (typename internal_node::const_iterator it = static_cast<const_internal_node_pointer>(p_nd)->begin(); it != static_cast<const_internal_node_pointer>(p_nd)->end(); ++it) ret += recursive_count_leafs(*it); return ret; }