这里是链接https://pastebin.com/qNN9nhJi
这不包含线性搜索吗?还是作为平衡的树有所作为
def lookup_LTE(self, node, time, prev_ans):
"""Function to Execute LTE Query"""
if node == None:
#print(prev_ans)
f.write(prev_ans + "\n")
return
elif time == node.time:
#print(node.adrs)
f.write(node.adrs + "\n")
return
elif time < node.time:
self.lookup_LTE(node.left, time, prev_ans)
else:
prev_ans = node.adrs
self.lookup_LTE(node.right, time, prev_ans)
如果node
指向平衡和排序的树,则在每个步骤中的查找都避免查看其余树的一半。因此,它有效地将每一步将搜索空间分为两个(“二进制”)。
如果不对树进行排序,则需要左右左右寻找正确的解决方案。这样的搜索将浪费大量时间,并且与线性搜索相似。