当我在二进制搜索树中给出一些整数时,我做了最接近的下界
def lowerBound(x : Int) : Int = {
var t = root
var result : Int = 0
while(t.key != x) {
if(x == t.key) {
result = t.left.key
}
else{
if(x < t.key) {
t = t.left
if(t == null) {
throw new NoSuchElementException
}
else {
result = t.key
}
}
else {
t = t.right
}
}
}
result
}
我是这样做的。但它不会打印任何结果。 T T ....
是我的算法中的任何反例?
如果有{2,3,5,7,8,10,99} lowerBound(6)是5。
答案 0 :(得分:2)
作业?
然后只需几点:
t.key == x
成功退出循环,因此除非x在树中,否则无法成功返回。听起来不对。 另外