1. Binary Search Trees (reference-based) are memory-efficient. They do not reserve more memory than they need to.
For instance, if a hash function has a range R(h) = 0...100, then you need to allocate an array of 100 (pointers-to) elements, even if you are just hashing 20 elements.
2. geting all keys in sorted order by just doing Inorder Traversal of BST. This is not a natural operation in Hash Tables and requires extra efforts.
3. doing range queries are easy to do with BSTs. finding closest lower and greater elements,
4. With Self-Balancing BSTs, all operations are guaranteed to work in O(Logn) time. But with Hashing, Θ(1) is average time and some particular operations may be costly, especially when table resizing happens.
转自:
https://stackoverflow.com/questions/4128546/advantages-of-binary-search-trees-over-hash-tables
https://www.geeksforgeeks.org/advantages-of-bst-over-hash-table/