Осваиваю ассоциативный массив (словарь).
За основу взяты методы хэш-таблицы.
Словарь реализован на основе двух списков self.slots и self.values. Размер задаётся при инициации экземпляра.
Реализованы следующие методы:
- def __init__(self, sz):
'''конструктор'''
- def hash_fun(self, key): # в качестве key поступают строки!
'''по входному значению вычисляет индекс слота'''
- def is_key(self, key):
'''возвращает True если ключ имеется, иначе False'''
- def put(self, key, value):
'''гарантированно записываем значение value по ключу key'''
- def get(self, key):
'''возвращает value для key, или None если ключ не найден'''
- def seek_slot(self, value):
'''функцию поиска слота - по входному значению сперва рассчитывает индекс хэш-функцией,
а затем отыскивает подходящий слот для него с учётом коллизий,
или возвращает None, если это не удалось'''
# находит индекс пустого слота для значения, или None