¿Por qué se std::mapimplementa como un árbol rojo-negro ? Hay varios árboles de búsqueda binarios equilibrados (BST) por ahí. ¿Cuáles fueron las compensaciones de diseño al elegir un árbol rojo-negro?
¿Cuál es la diferencia entre un montón y BST? ¿Cuándo usar un montón y cuándo usar un BST? Si desea obtener los elementos de forma ordenada, ¿es mejor BST sobre el montón?
¿Cuáles son las ventajas de los árboles de búsqueda binarios sobre las tablas hash? Las tablas hash pueden buscar cualquier elemento en tiempo Theta (1) y es igual de fácil agregar un elemento ... pero no estoy seguro de las ventajas de ir al revés.
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 …