广度优先搜索(BFS) 1.将头结点放入队列Q中 2.while Q!=空 u出队 遍历u的邻接表中的每个节点v 将v插入队列中 当使用无向图的邻接表时,复杂度为O(V^2) 当使用有向图的邻接表时,因为每条边只访问一次,不会重复访问,所以总复杂度为O(V+E) 深度优先搜索(DFS) for each vertex u∈V(G) //执行时间为O(V) DFS(u) DFS内部: for each v 为u的邻接点 //执行时间为O(E) DFS(v) 总执行时间为O(V+E)…
采用搜索算法解决问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构称为结点.不同的问题需要用不同的数据结构描述. 根据搜索问题所给定的条件,从一个结点出发,可以生成一个或多个新的结点,这个过程通常称为扩展.结点之间的关系一般可以表示成一棵树,它被称为解答树.搜索算法的搜索过程实际上就是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的结点的过程. 深度优先搜索DFS(Depth First Search)是从初始结点开始扩展,扩展顺序总是先扩展最新产生的结点.这就使…