C # Двоичные деревья и словари

Я борюсь с понятием, когда использовать двоичные деревья поиска и когда использовать словари.

В моем приложении я провел небольшой эксперимент, в котором использовалась библиотека C5.TreeDictionary (которое я считаю красно-черным бинарным деревом поиска) и словарь C #. Словарь всегда был быстрее при операциях добавления / поиска, а также всегда занимал меньше места в памяти. Например, в 16809 словарь использовал 342 КиБ, в то время как дерево использовало 723 КиБ.

Я думал, что BST 'Предполагалось, что они будут более эффективными в использовании памяти, но кажется, что одному узлу дерева требуется больше байтов, чем одной записи в словаре. Что дает? Есть ли точка, в которой BST 'лучше словари?

Кроме того, в качестве дополнительного вопроса, кто-нибудь знает, существует ли более быстрая и более эффективная структура данных для хранения? пары для доступа к словарному типу, чем любая из упомянутых структур?

Ответы на вопрос(6)

Ваш ответ на вопрос