我是靠谱客的博主 爱撒娇心锁,最近开发中收集的这篇文章主要介绍python深度优先与广度优先的遍历算法比较,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在实现爬虫遍历页面url的算法的时候,我们需要使用到深度优先或者广度优先的遍历算法,

例子:现在我们使用两种算法进行遍历下面结构的一棵树结构





深度优先:

    将一个子节点的所有内容全部遍历完毕之后再去遍历其他节点实现的 (递归实现)

上面的树通过深度优先遍历出来的结果是:  A-->B-->D-->E-->I-->C-->F-->G-->H

使用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)


广度优先:

   广度优先的算法的实现是通过 分层次的进行遍历 先遍历第一层,然后第二层,第三层 (队列实现)

  上面的树通过深度优先遍历出来的结果是:   A-->B-->C-->D-->E-->F-->F-->G-->H

#广度优先遍历算法
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)


比较上面的两种算法,我们看出,深度优先遍历的算法是通过递归的方式一只只遍历某一个节点从而进行的,

而广度优先遍历算法则是把上一个层次的所有节点归入队列全部遍历完毕再进行下面的遍历的




最后

以上就是爱撒娇心锁为你收集整理的python深度优先与广度优先的遍历算法比较的全部内容,希望文章能够帮你解决python深度优先与广度优先的遍历算法比较所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部