python实现搜索二叉树

132 阅读1分钟

二叉树的先序遍历,后续遍历,中序遍历的实现 代码:

#coding:utf-8
class Btree:
    def __init__(self,root):
        self.root = root
        self.left = None
        self.right = None
def inordertree(tree,array = []):
    #中序遍历
    if tree is None:
        return []
    else:
        inordertree(tree.left,array)
        array.append(tree.root)
        inordertree(tree.right, array)
    return array
def postordertree(tree,array = []):
    #后续遍历
    if tree is None:
        return []
    else:
        postordertree(tree.left,array)
        postordertree(tree.right,array)
        array.append(tree.root)
    return array
def preordertree(tree,array = []):
    #先序遍历
    if tree is None:
        return []
    else:
        array.append(tree.root)
        preordertree(tree.left,array)
        preordertree(tree.right, array)
    return array
if __name__ == '__main__':
    '''
    10
 5      15
2, 5       22
1
    '''
    tree = Btree(10)
    tree.left = Btree(5)
    tree.right = Btree(15)
    tree.left.left = Btree(2)
    tree.left.right = Btree(5)
    tree.right.right = Btree(22)
    tree.left.left.left = Btree(1)
    print(inordertree(tree, array=[]))
    print(postordertree(tree, array=[]))
    print(preordertree(tree, array=[]))