-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