深度优先和广度优先算法的Python实现(爬虫原理)

 构造如下的一个二叉树,简要分析一下,在爬虫应用过程中,对深度优先和广度优先算法的实现:

深度优先和广度优先算法的Python实现(爬虫原理)

 一、深度优先


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)