import random as rnd ############################################################################################# def ll_insert(head, name, phone): next_node = {'name': name, 'phone': phone, 'next': None} if head is None: return next_node running = head while running is not None: if running['name'] == name: running['phone'] = phone return head running = running['next'] running = head while running['next'] is not None: running = running['next'] running['next'] = next_node return head def ll_find(head, name): running = head flag = True while flag: if running['name'] == name: return running['phone'] running = running['next'] flag = running is not None return None def main(): head = None print('======== TESTING LL_INSERT ==========') Name = ['Dima', 'Ivan', 'Maxim', 'Alex'] for _ in range(10): name = Name[rnd.randint(0, 3)] phone = str(rnd.randint(0,9)) + str(rnd.randint(0,9)) + str(rnd.randint(0,9)) + '-' + \ str(rnd.randint(0,9)) + str(rnd.randint(0,9)) + str(rnd.randint(0,9)) print(name, phone) head = ll_insert(head, name, phone) print(head) print('-----------------------------------\n') print('======== END TESTING ================') print('======== TESTING LL_FIND ==========') Name.append('Masha') for i in range(len(Name)): name = Name[i] print(name, ":", ll_find(head, name)) print("======== END TESTING =============") if __name__ == "__main__": main()