深度優先與廣度優先

青穗黃發表於2018-09-04

深度優先過程

def depth_tree(tree_node):
    if tree_node is not None:
        print(tree_node._data)
        if tree_node.left is not None:
            return depth_tree(tree_node._left)
        if tree_node._right is not None:
            return depth_tree(tree_node._right)
複製程式碼

廣度優先過程

def level_queue(root):
    if root is None:
        return 
    my_queue = []
    node = root
    my_queue.append(node)
    while my_queue:
        node = my_queue.pop(0)
        print(node.elem)
        if node.lchild is not None:
            my_queue.append(node.lchild)
        if node.rchild is not None:
            my_queue.append(node.rchild)
複製程式碼

參考:coding.imooc.com/class/chapt…

相關文章