广度优先搜索
2018-05-29 本文已影响0人
刘志阳
1.图和图算法(广度优先搜索)
图是模拟不同节点的连接
它由节点node和边edge(连接线)组成
节点 ___边__ >节点
解决最短路径问题的算法称为广度优先搜索
广度优先搜索的思路是这样的:
a.有从a到b的路径吗
b.有一步就到的吗,如果有那这个就是最短路径,如果没有有两步到的吗,如果有这个就是最短路径,依次往下循环
这样是一个懒人的思路
强调的是宽度广
深度优先搜索强调的是深度
2.有向图和无向图
有向图中的边为箭头,箭头的方向指定了关系的方向,例如 甲 -> 乙 说明 甲欠乙的钱
无向图中的边不带箭头,其中的关系为双向的,例如 甲 -- 乙 说明甲跟乙约会,乙也跟甲约会
3.拓扑排序
一一排列出符合规则的组合
4.python3 双向队列deque
from collections import deque
aa=deque( )
aa.append(1)
aa.append(2)
print (aa) #deque([1,2])
aa.appendleft(3)
print(aa) #deque([3,1,2])
extend/extendleft pop/popleft跟上面道理一样的
clear()清空队列
count(n) 返回n出现的次数
index(n)返回n元素的索引位置
5.什么是树?
树是图的一种特殊形式,家谱式的图且没有往后指的边这种就是树
6.广度优先搜索的代码: