@returnZero

Когда в hashtable нужно хранить и ключ и значение?

Всем добрый день, изучаю структуры данных на примере C#, есть пара непонятных моментов.
1. у нас есть хэш-таблица которую представляет некий массив и хэш-функция. Хэш-функции мы передаем ключ которая превращает его путем определённых манипуляций в индекс этого массива. Но если у нас вдруг совпадут хэши то возникнет коллизия, и тогда у нас есть 2 метода её обхода, 1 - открытая адресация 2 - связанный список. Тут я не понимаю одного, нужно ли хранить ключ так же в массиве, ведь если мы запросим какой-то айтем в массиве у которого есть коллизия то как мы поймем какой из них нам нужен, и если это нужно делать то каким методом стоит пользоваться в случае открытой адресации и списков?
2. Где можно посмотреть примеры реализации хэш-таблицы на шарпе?
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Но если у нас вдруг совпадут хэши то возникнет коллизия, и тогда у нас есть 2 метода её обхода, 1 - открытая адресация 2 - связанный список.


Да. В связном списке всегда хранятся и ключи и значения. В противном случае вы не докажете что нашли верно.

UPD: Обновление. Поскольку я был неверно понят комментаторами - я обновляю цитату. Мой комментарий относится ко второму алгоритму. А точнее к структуре данных. В данном случае к связному списку который реализован в 99% хеш-таблиц в Java/DotNet.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы