diff --git a/svetlakovkyu/docs/data/01/codes/HT.py b/svetlakovkyu/docs/data/01/codes/HT.py new file mode 100644 index 0000000..8680c91 --- /dev/null +++ b/svetlakovkyu/docs/data/01/codes/HT.py @@ -0,0 +1,28 @@ +from codes.LL import ll_insert, ll_find, ll_delete +def ht_insert(buckets, name, phone): + index = hash(name) % len(buckets) + current_head = buckets[index] + new_head = ll_insert(current_head, name, phone) + buckets[index] = new_head +# print("-"*100) +# print(buskets) + +def ht_find(buckets, name): + index = hash(name)%len(buckets) + slot_head = buckets[index] + res_ph = ll_find(slot_head, name) + return res_ph + +def ht_delete(buskets, name): + index = hash(name)%len(buskets) + buskets[index] = ll_delete(buskets[index], name) + +def ht_list_all(buckets): + all_rec = [] + for head in buckets: + current = head + while current is not None: + all_rec.append((current['name'], current['phone'])) + current = current['next'] + all_rec.sort() + return all_rec \ No newline at end of file