Как найти глубину каждого узла в std::map?
Если я создаю свое собственное двоичное дерево, то я могу найти глубину каждого узла. Пример кода выглядит следующим образом
template<class datatype>
void binary_node<datatype>::printNodeWithDepth(int currentNodeDepth)
{
if ( left )
left->printNodeWithDepth(currentNodeDepth+1);
std::cout << value << " and the depth is " << currentNodeDepth << std::endl;
if ( right)
right->printNodeWithDepth(currentNodeDepth+1);
}
Но интересно, так как map - это b-дерево, можно ли написать что-то похожее на это для std::map
?
1 ответ
Решение
std::map
не гарантируется, что это будет b-дерево, просто гарантированно будет как минимум такая же хорошая сложность во время выполнения. Чтобы открыть двери для других потенциальных реализаций, интерфейс не включает функции для проверки такого рода деталей реализации.:)