Найти тему
Николай Лазарев

Ассоциативный массив - словарь (изучаю структуры данных)

Осваиваю ассоциативный массив (словарь).

За основу взяты методы хэш-таблицы.

Словарь реализован на основе двух списков 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

Ссылка на код

Ссылка на тесты