-1
def str_tree(atree,indent_char ='.',indent_delta=2):
def str_tree_1(indent,atree):
if atree == None:
return ''
else:
answer = ''
answer += str_tree_1(indent+indent_delta,atree.right)
answer += indent*indent_char+str(atree.value)+'\n'
answer += str_tree_1(indent+indent_delta,atree.left)
return answer
return str_tree_1(0,atree)
def build_balanced_bst(l):
if len(l) == 0:
return None
else:
mid = (len(l)-1)/2
if mid >= 1:
build_balanced_bst(l[:mid])
build_balanced_bst(l[mid:])
else:
return
我的build_balanced_bst(L),该build_balanced_bst(L)工作采取了在增加顺序排序的唯一值的列表。调用build_ballanced_bst(名单(irange(1,10))返回高度为3的二叉搜索树,因为这将打印:打印二叉树如何解决build_balanced_bst功能
......10
....9
..8
......7
....6
5
......4
....3
..2
....1
的str_tree函数用来打印build_balanced_bst()函数返回什么我str_tree功能我只能改变build_balanced_bst()函数
我在列表中使用了中间值作为根的值当我尝试在下面调用build_balanced_bst(l)时,不打印任何东西
l = list(irange(1,10))
t = build_balanced_bst(l)
print('Tree is\n',str_tree(t),sep='')
有人可以帮我修复我的build_balanced_bst(l)函数吗?非常感谢。
你的树的结构应该是什么样的?有没有'节点'类或什么的? ('str_tree'似乎期望有'left','right'和'value'属性的东西。)你的'build_balanced_bst'函数不会返回任何东西(这在技术上意味着它总是返回'None')。它在你给它的列表上递归,但它实际上从来没有对列表的数据做任何事情。 – Blckknght