Найти в Дзене
Николай Лазарев

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

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

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

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

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

Ссылка на код

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