Back to questions
Junior — Middle
73
Какие шаги необходимо предпринять для реализации структуры данных типа хэш-таблица?
Answer from AI
sobes.tech AI
Для реализации структуры данных хэш-таблица необходимо выполнить следующие шаги:
- Выбор хэш-функции — функция, которая преобразует ключ в индекс массива.
- Создание массива (бакетов) — основная структура для хранения элементов.
- Обработка коллизий — ситуации, когда разные ключи дают одинаковый индекс. Обычно используют:
- цепочки (chaining) — в каждом бакете хранится список элементов;
- открытая адресация — поиск следующей свободной ячейки.
- Методы вставки, поиска и удаления — реализовать операции с учетом хэш-функции и коллизий.
Пример простой реализации с цепочками на Python:
class HashTable:
def __init__(self, size=10):
self.size = size
self.buckets = [[] for _ in range(size)]
def _hash(self, key):
return hash(key) % self.size
def insert(self, key, value):
index = self._hash(key)
bucket = self.buckets[index]
for i, (k, v) in enumerate(bucket):
if k == key:
bucket[i] = (key, value)
return
bucket.append((key, value))
def get(self, key):
index = self._hash(key)
bucket = self.buckets[index]
for k, v in bucket:
if k == key:
return v
return None
def remove(self, key):
index = self._hash(key)
bucket = self.buckets[index]
for i, (k, _) in enumerate(bucket):
if k == key:
del bucket[i]
return
Так реализуется базовая хэш-таблица с обработкой коллизий через цепочки.