diff --git a/pomelovsd/DataStruct/BinaryTree.py b/pomelovsd/DataStruct/BinaryTree.py index 77342c8..f769d99 100644 --- a/pomelovsd/DataStruct/BinaryTree.py +++ b/pomelovsd/DataStruct/BinaryTree.py @@ -1,3 +1,27 @@ 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) \ No newline at end of file