二叉树建树creattree部分报错,补全代码
"""to build a binary tree with binary linked list"""
class BTNode():
def __init__(self, data = None, lchild = None, rchild = None):
self.data = data
self.lchild = lchild # left child
self.rchild = rchild # right child
def creatBinTree():
# finally return root node
ch = input('Please input an alphabet, to note that \"*\" stands for None: ')
def preorder(self,node): #per-order traversal
if node ==None:
return
print(node.data, end=" ")
self.preorder(node.lchild)
self.preorder(node.rchild)
def postorder(self,node): #post-order traversal
if node == None:
return
self.postorder(node.lchild)
self.postorder(node.rchild)
print(node.data,end="")
def inorder(self,node): #in-order traversal
if node==None:
return
self.inorder(node.lchild)
print(node.data,end=" ")
self.inorder(node,rchild)
def levelorder(): #level-order traversal by queue
def countleaf(): #count the number of leaf nodes
def inorder2():
if __name__ == '__main__':
#with the pre-order traversed sequence as input:AB*D**C**. "*" stands for NONE.
bt = creatBinTree()
print('pre-order traversal: ')
preorder(bt)
print('\n')
print('post-order traversal: ')
postorder(bt)
print('\n')
print('in-order traversal: ')
inorder(bt)
print('\n')
print('level-order traversal: ')
levelorder(bt)
print('\n')
n = 0 #global variant to save the number of leaf nodes
countleaf(bt)
print('The number of leaf nodes is: ', n)
print('\n')
print('in-order traversal by non-recursive way: ')
inorder2(bt)
兄弟有啥问题说一下哈
代码不全,是要补全函数代码吗?
这个写的很详细,可以参考下
https://www.jianshu.com/p/9503238394df
嗯,这个二叉树的各种创建方法文章,【里面有提到二叉树建树creattree方法】期望对你有所启发:https://blog.csdn.net/lingling_nice/article/details/80960439