python 广搜

前端时间学了数据结构中的深搜与广搜。是用C语言实现的。那就像想能不能用python实现图的广搜。为什么不考虑深搜,因为我知道的深搜都是用递归的形式去实现的,对内存空间浪费极大。而且python中似乎没有指针的概念。不太好实现深搜。如果要实现深搜就一定要指定深搜的层数,因此就来看广搜是如何实现的,在python中。(关于C语言实现深搜与广搜是这篇文章

https://blog.csdn.net/qq_41861526/article/details/80439938

那我这里就来讲一下什么是广搜,广搜在二叉树中又叫做层序遍历,是通过一层一层的向下搜索,才实现的广搜。

如此图所示,广搜的顺序是1 2 5 6 9 3 4 7 10 8

那我们怎么实现的呢?

就是这样的,需要借助队列。即访问一个节点后,就将此节点的孩子节点放到队列中,这样就能实现广搜。这里就是二叉树的层序遍历。

那我们怎么用广搜呢?因为我在学python爬虫就自然联想到能不能将爬虫与广搜联系起来。

比如个人信息是通过点赞,或者粉丝联系起来,那爬这种信息之类的就完全可以用广搜来实现。有两点好处:第一点,获取到有效信息的可能性比较大。比如我们去爬A的followers,那A的follows就一定是存在的,而且死账号的可能性比较少,又比如我们获取给A点赞的人,那给别人点赞的话,说明这个人是比较活跃的。第二点,获取到相似信息的可能性比较大,毕竟人以群分。

下面来讲如何用python实现广搜


import Queue
q = Queue.Queue()
q.push(data)
while ! q.empty():
	a=q.get()
	list=get(a)
	for i in list:
		q.put(i)

猜你喜欢

转载自blog.csdn.net/qq_41861526/article/details/81119664
今日推荐