Хэш-таблица против хеш-листа против хэш-дерева?

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

Ответ 1

  • Hashtable: это структура данных, в которую вы можете вставлять пары (ключ, значение), в которых ключ используется для вычисления хэш-кода, который необходим, чтобы решить, где хранить значение, связанное с его ключом. Такая структура полезна, потому что вычисление хэш-кода - это O (1), поэтому вы можете найти или поместить элемент в постоянное время. (Имейте в виду, что существуют предостережения и различные реализации, которые немного меняют эту производительность)
  • Хэш-лист: это всего лишь список хэш-кодов, рассчитанных на различные фрагменты данных. Например: вы разделяете файл во многих частях, и вы вычисляете хэш-код для каждой части, а затем сохраняете все из них в списке. Затем вы можете использовать этот список для проверки целостности данных.
  • Hashtree: он похож на хеш-лист, но вместо того, чтобы иметь список хешей, у вас есть дерево, поэтому каждый node в дереве является хэш-кодом, который вычисляется на его дочерних элементах. Конечно, листья будут данными, из которых вы начнете вычислять хэш-коды.

Hashtable часто полезен (они также называются hashmaps), а хехлисты и хехт. несколько более специфичны и полезно для точных целей.