From fa690cac5757580a595eb4cfbe9ef49e5ac2e428 Mon Sep 17 00:00:00 2001 From: 4eker <423785z@gmail.com> Date: Mon, 20 Apr 2026 13:43:18 +0300 Subject: [PATCH] [1] add dst_insert and dst_find --- pomelovsd/DataStruct/BinaryTree.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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