[1] add dst_insert and dst_find
This commit is contained in:
parent
c3ed1e09f1
commit
fa690cac57
|
|
@ -1,3 +1,27 @@
|
||||||
def create_node(name,phone):
|
def create_node(name,phone):
|
||||||
return {"name": name, "phone": phone, "left": None, "right": None}
|
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)
|
||||||
Loading…
Reference in New Issue
Block a user