Просто пытаюсь понять логику линейного зондирования.
Используя хеш-таблицу с открытой адресацией, как вы можете когда-либо подтвердить, что элемент отсутствует в таблице.
Например, скажем,у вас был хэш-карта с 10 ведрами.Предположим, вы хешируете ключ и вставляете его.Теперь, если элементы A и B должны быть вставлены, хешированы и сокращены до одного и того же сегмента, тогда элементы A и B, если используется линейный зонд, скорее всего будут рядом друг с другом.
Теперь, просто потому, что сегментпусто, не означает, что элемент не существует на карте.Например, вы ищете элемент B после того, как элемент A был впервые удален.Сначала вы получите пустое ведро, где вы ожидаете, что B будет, но вам нужно исследовать еще один, и вы найдете B. Это действительно там.Если эта логика верна, то вам не придется искать всю таблицу, чтобы убедиться, что там нет ключа?то есть O (n) производительность каждый раз.
Что я говорю, разве вам не нужно просматривать всю карту, чтобы действительно подтвердить, что ее там нет?
При отдельном подходе к созданию цепочки хеш-карт этой проблемы не существует.
Редактировать: Что я имею в виду, глядя на эту картинку http://upload.wikimedia.org/wikipedia/commons/b/bf/Hash_table_5_0_1_1_1_1_0_SP.svg
Если Джон Смит удалени мы пытаемся найти Сандру Ди.
Или с линейной адресацией вы должны перемещать элементы так, чтобы не было дыр как таковых.т.е. если Джон Смит удален, элементы от 152 до 154 должны быть перемещены назад на одно место?Это действительно не видно в описании, но это может иметь некоторый смысл.За исключением случаев, когда Тэд Бейкер хэшировал до 154, а не 153, как описано.Требуется немного больше работы, чем я думал.
Можно просто добавить простой список в каждом сегменте.