Это производный вопрос, но я задаю вопрос структурам данных, которые вам, по крайней мере, нужно знать для их полезности. Однако эти структуры слишком сложно реализовать без какой-либо экспертизы.
Я бы сказал, что хорошая граница между ними - куча - вы должны иметь возможность кодировать кучу, но вам понадобится день. Для этого не подходит BST и т.д. Редактирование: я вижу, что это зависит от того, что вы делаете. Я думаю, было бы здорово иметь список с фразой, суммирующей, почему вы ее используете!
Здесь начинается список:
- B + деревья: хорошая общая структура индексирования на одном ключе
- Дерево K-d: пространственные данные
- Красно-черное дерево: самобалансирующееся BST; также AVL или splay tree
- Список пропусков: хорошая гибридная структура для случайного или (псевдо) последовательного доступа
- Trie: поиск по линейной временной строке