题记:在c中,对数组名加一,就可以指向下一个地址,而python不允许,我就用另一个变量存储当前遍历的数组的下标--
建树过程和遍历过程一样,只不过对元素的访问改成了增加
class BiTree:
def createBiTree(self,l,n): #需要有一个变量来记录当前已经遍历过的列表的下标,c的话直接列表名加一就行了--取下一个地址,而python不允许
if n>=len(l):return None,-1
root = BiTreeNode()
c=l[n]
if c != '#':
root.data=c
root.lchild,n = self.createBiTree(l, n + 1) #
root.rchild,n = self.createBiTree(l,n+1)
return root,n
return None,n
#主程序:
L = ['a', 'b', '#', 'c', 'f', '#', '#', '#', 'd', 'e', '#', '#', '#']
tree=BiTree()
bt,n = tree.createBiTree(L,0)