[1] add dst_insert and dst_find

This commit is contained in:
4eker 2026-04-20 13:43:18 +03:00
parent c3ed1e09f1
commit fa690cac57

View File

@ -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)