Чому 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 …