def create_node(name,phone): return {"name": name, "phone": phone, "left": None, "right": None} def dst_insert(root, name, phone): # Случай, если нет узлов if root is None: return create_node(name, phone) # Случай, если узел слева elif name < root["name"]: root["left"] = dst_insert(root["left"], name, phone) # Случай, если узел справа elif name > root["name"]: root["right"] = dst_insert(root["right"], name, phone) # Случай, если мы перезаписываем узел else: root["phone"] = phone return root def dst_find(root, name): if root is None: return None elif root == root["name"]: return root["phone"] elif root < root["name"]: return dst_find(root["left"], name) else: return dst_find(root["right"],name)