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)

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值