6、广度优先搜索

6、广度优先搜索

  6.1 图简介

    广度优先搜索(breadth-first search,BFS)

    广度优先搜索能让你能够找出两样东西之间的最短距离,不过最短距离的含义有很多。使用广度优先搜索可以:

    最短路径问题(shorterst-path problem),解决最短路径问题的算法被称为广度优先搜索。

  6.2 图是什么

    图由节点(node)和边(edge)组成。一个节点可能与众多节点直接相连,这些节点被称为邻居。

   6.3 广度优先搜索

    广度优先搜索是一种用于图的查找算法,可帮助回答两类问题。

    (1)第一类问题:从节点A出发,有前往节点B 的路径吗?

    (2)第二类问题:从节点A出发,前往节点B的哪条路径最短?

    队列是一种先进先出(Fist In First Out,FIFO)的数据结构,而栈是一种后进先出(Last In First Out,LIFO)的数据结构。

    你需要按加入顺序检查列表中的人,否则找到的就不是最短路径,因此搜索列表必须是队列。

    对于检查过的人,务必不要再去检查,否则坑你导致无限循环。

 

    

    

 

posted @ 2019-04-28 15:26  Lamfai  阅读(405)  评论(0编辑  收藏  举报