思路:
如何将数组放进去,就要用到递归的思想啦。将数组分成两部分一部分构成左子树,一部分构成右子树。
如【1,2,3,4,5,6,7,8,9,10】
-
6
-
1,2,3,4,5 7,8,9,10
-
6
-
3 9
-
12 45 78 10
以此类推。便可以构成二叉树了
class Btree():
def __init__(self):
self.data=None
self.lchild=None
self.rchild=None
def arrtotree(arr,start,end):
t=Btree()
if start>=end:####千万要有等号,加入没有等号,会损失一层,
#同时这也是递归结束的条件。
mid=int((start+end+1)/2)
t.data=arr[mid]
t.lchild=arrtotree(arr,start,mid-1)
t.rchild=arrtotree(arr,mid+1,end)
else:
t=None
return t
如何验证放进去呢?下一篇我们将打印出来看一下。依次通过先序遍历,中序遍历,后序遍历验证。