From 6849fc48026677742de0c0552729c110c44ca290 Mon Sep 17 00:00:00 2001 From: lukovnikovde Date: Fri, 1 May 2026 16:26:24 +0000 Subject: [PATCH] [9] adding bst_insert() --- lukovnikovde/docs/data/DataStructure.py | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/lukovnikovde/docs/data/DataStructure.py b/lukovnikovde/docs/data/DataStructure.py index f26e6bb..89fbb81 100644 --- a/lukovnikovde/docs/data/DataStructure.py +++ b/lukovnikovde/docs/data/DataStructure.py @@ -190,10 +190,59 @@ def HashTable(buckest): print("========= END TESTING ==============\n\n") ################################################################################################# + +def bst_insert(root, name, phone): + + running = root + + if running is None: + root = {'name': name, 'phone': phone, 'left': None, 'right': None} + return root + while True: + node = sum(ord(ch) for ch in running['name']) + sheet = sum(ord(ch) for ch in name) + if node < sheet: + if running['right'] is None: + running['right'] = {'name': name, 'phone': phone, 'left': None, 'right': None} + return root + running = running['right'] + elif node > sheet: + if running['left'] is None: + running['left'] = {'name': name, 'phone': phone, 'left': None, 'right': None} + return root + running = running['left'] + else: + running['phone'] = phone + return root + + + +################################################################################################# + +def BinarySearchTree(root): + + print('=========== TESTING BST_INSERT =============') + Name = ['Dima', 'Alex', 'Ivan', 'Maxim', 'Olga', 'Lena'] + + for _ in range(10): + name = Name[rnd.randint(0, len(Name) - 1)] + 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) + root = bst_insert(root, name, phone) + print(root) + print('-----------------------------------------------------\n') + + print('============= END TESTING =====================\n\n') + + +################################################################################################ def main(): LinkedList(None) HashTable([[] for _ in range(10)]) + BinarySearchTree(None) if __name__ == "__main__": main()