Почему std::mapреализовано как красно-черное дерево ? Существует несколько сбалансированных бинарных поисковых деревьев (BST). Каковы были дизайнерские компромиссы при выборе красно-черного дерева?
В чем разница между кучей и BST? Когда использовать кучу, а когда использовать BST? Если вы хотите получить элементы в отсортированном виде, лучше ли BST по сравнению с кучей?
Каковы преимущества двоичных деревьев поиска перед хеш-таблицами? Хеш-таблицы могут искать любой элемент во времени Theta (1), и так же легко добавить элемент ... но я не уверен в преимуществах обратного.
type BSTree a = BinaryTree a data BinaryTree a = Null | Node (BinaryTree a) a (BinaryTree a) deriving Show flattenTree :: BinaryTree a -> [a] flattenTree tree = case tree of Null -> [] Node left val right -> (flattenTree left) ++ [val] ++ (flattenTree right) isBSTree :: (Ord …