diff --git a/lukovnikovde/docs/data/DataStructure.py b/lukovnikovde/docs/data/DataStructure.py index d04d2a1..4a1d15b 100644 --- a/lukovnikovde/docs/data/DataStructure.py +++ b/lukovnikovde/docs/data/DataStructure.py @@ -1,6 +1,17 @@ import random as rnd ############################################################################################# +def sort_list(name_list): + l = len(name_list) + for i in range(l - 1): + for j in range(l - i - 1): + if name_list[j][0] > name_list[j + 1][0]: + name_list[j][0], name_list[j + 1][0] = name_list[j + 1][0], name_list[j][0] + return name_list + + +########################################################################################################################### + def ll_insert(head, name, phone): next_node = {'name': name, 'phone': phone, 'next': None} if head is None: return next_node @@ -55,17 +66,9 @@ def ll_list_all(head): running = running['next'] return name_list -def sort_list(name_list): - l = len(name_list) - for i in range(l - 1): - for j in range(l - i - 1): - if name_list[j][0] > name_list[j + 1][0]: - name_list[j][0], name_list[j + 1][0] = name_list[j + 1][0], name_list[j][0] - return name_list - +################################################################################################################################ -########################################################################################################################### def LinkedList(head): print('======== TESTING LL_INSERT ==========') @@ -105,14 +108,14 @@ def LinkedList(head): ######################################################################################################### -def ht_insert(head, name, phone): - - running = head - if running is None: - return {name: phone} - running[name] = phone - return head - +def ht_insert(buckest, name, phone): + index = sum(ord(ch) for ch in name) % 10 + for i, (Name, Phone) in enumerate(buckest[index]): + if Name == name: + buckest[index][i] = (name, phone) + return buckest + buckest[index].append((name, phone)) + return buckest #################################################################################################### @@ -133,12 +136,18 @@ def HashTable(head): print('============= END TESTING =====================\n\n') +""" Name.append('Masha') + for i in range(len(Name)): + name = Name[i] + print(name, ":", ht_find(head, name)) + print("======== END TESTING =============\n\n") +""" ################################################################################################# def main(): LinkedList(None) - HashTable(None) + HashTable([[] for _ in range(10)]) if __name__ == "__main__": main()