我有一个区间树,它保存了一段数字范围内的数据(使用这里介绍的数据结构)。以下是代码:
class SegmentTree:
def __init__(self, N):
def _init(b, e):
if b is e:
data = foo() # No dependency
return Node(b, e, data, None, None)
else:
mid = (b + e ) / 2
L = _init(b, mid)
R = _init(mid + 1, e)
data = foo() #Data depends on L and R
return Node(b, e, data, L, R)
self.root = _init(1, N)
这个递归方法在 N 约为 300 时会出现超过最大递归深度的错误。有没有一种迭代方式来创建树而不是递归?