Хэш-таблица против хэш-списка против хэш-дерева? - PullRequest
18 голосов
/ 04 июня 2010

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

1 Ответ

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

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

...