python實現樹的四種遍歷方法

class tree:
    def __init__(self, val):
        self.val = val
        self.rchild = None
        self.lchild = None


#前序遍歷
def before_traversal(tree, li):
    if tree:
        li.append(tree.val)
        before_traversal(tree.lchild, li)
        before_traversal(tree.rchild, li)
    return

#後序遍歷
def after_traversal(tree, li):
    if tree:
        after_traversal(tree.lchild, li)
        after_traversal(tree.rchild, li)
        li.append(tree.val)
    return

#中序遍歷
def middle_traversal(tree, li):
    if tree:
        middle_traversal(tree.lchild, li)
        li.append(tree.val)
        middle_traversal(tree.rchild, li)
    return

#層序遍歷
def layer_traversal(tree, li):
    tlp = []
    tlp.append(tree)
    while tlp:
        tlc = []
        for i in tlp:
            li.append(i.val)
            if i.lchild:
                tlc.append(i.lchild)
            if i.rchild:
                tlc.append(i.rchild)
        tlp.reverse()
        tlp = tlc.copy()
        del tlc
    return li
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章