python3实现二叉树的简单遍历(DLR 、LDR、LRD)

转自https://www.cnblogs.com/freeman818/p/7252041.html

https://www.cnblogs.com/lliuye/p/9143676.html

收藏学习

#构建二叉树
class Node:
    def __init__(self,value=None,left=None,right=None):
        self.value=value  
        self.left=left    #左子树
        self.right=right  #右子树
#下面提到的遍历均先处理左树
def preTraverse(root):  
    '''
    前序遍历DLR
    '''
    if root==None:  
        return  
    print(root.value)  
    preTraverse(root.left)  
    preTraverse(root.right)  

def midTraverse(root):
    '''
    中序遍历LDR
    '''
    if root==None:  
        return  
    midTraverse(root.left)  
    print(root.value)  
    midTraverse(root.right)  
 
def afterTraverse(root):  
    '''
    后序遍历LRD
    '''
    if root==None:  
        return  
    afterTraverse(root.left)  
    afterTraverse(root.right)  
    print(root.value)

if __name__=='__main__':
    root=Node('D',Node('B',Node('A'),Node('C')),Node('E',right=Node('G',Node('F'))))
    
    print('前序遍历:')
    preTraverse(root)
    print('\n')
    print('中序遍历:')
    midTraverse(root)
    print('\n')
    print('后序遍历:')
    afterTraverse(root)
    print('\n')

 

已知后序遍历和中序遍历,就能确定前序遍历。

你可能感兴趣的:(pyer,二叉树,python3)