美文网首页
使用python编写广度优先搜索求到各个顶点的最短路径

使用python编写广度优先搜索求到各个顶点的最短路径

作者: dwq1666666 | 来源:发表于2019-12-17 20:18 被阅读0次
1.png
# 使用广度优先搜索寻找输入节点到各个节点的最短路径,也就是跳数,基于无权图,第一次学这个,大部分代码都是借鉴的老师的。。不过基本理解了
import queue as que


if __name__ == '__main__':

    # 顶点之间的关系,
    list_data = [
        # 0  1  2  3  4
        [0, 1, 0, 1, 0],    # 0
        [0, 0, 1, 0, 0],    # 1
        [1, 0, 0, 1, 1],    # 2
        [0, 0, 0, 0, 1],    # 3
        [0, 1, 0, 0, 0],    # 4
    ]

    list_len = len(list_data)

    # 运行时队列
    q = que.Queue(list_len)

    max_setup = list_len
    start = 0   # 开始的顶点位置
    q.put(start)    # 初始顶点加入队列
    min_setup = [max_setup]*max_setup   # 到各个点最短的步数组成的数组

    # 先将当前走的节点设置步数为0
    min_setup[start] = 0

    # 队列不空就一直跑
    while q.empty() is False:

        currentNode = q.get()   # 获取到当前节点

        for i in range(5):

            # currentNode!= i表示找的是线,
            # list_data[currentNode][i] == 1表示线可以走
            # min_setup[i] == max_setup 表示该节点没走过
            if currentNode != i and list_data[currentNode][i] == 1 and min_setup[i] == max_setup:
                q.put(i)
                min_setup[i] = min_setup[currentNode]+1

    print(min_setup)    # 打印结果

相关文章

  • 使用python编写广度优先搜索求到各个顶点的最短路径

  • 广度优先搜索

    广度优先搜索指出是否有A到B的路径 如果有,广度优先搜索将找出最短的路径面临类似于找最短路径的问题时,可以尝试使用...

  • Dijkstra’s algorithm

    是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。 从顶点v1到其他各个顶点的最短路径 O((...

  • 迪杰斯特拉(Dijkstra)

    迪杰斯特拉算法主要是用广度优先搜索的算法计算出一个顶点V到各个顶点的最短距离ver表示没有走过的顶点,dis表示顶...

  • 迪杰斯特拉算法(Dijkstra)-最短路径

    从一个顶点触发,到达所有点的最短路径,利用图的广度优先,将每一个可达顶点的长度与原最小路径比较去完成最小的赋值

  • 狄克斯特拉算法

    上面图中我们可以使用广度优先搜索查找到从双子峰到金门大桥的最短路径,但这个最短路径只是因为段数最少-只有三段,但不...

  • 搜索

    一、深度优先搜索 图深度优先遍历、深度优先搜索算法求有权图两点最短路径 二、广度优先搜索 图广度优先遍历、广度优先...

  • 狄克斯特拉算法

    要计算非加权图中的最短路径, 可使用广度优先搜索。 要计算加权图中的最短路径,可使用狄克斯特拉算法。 在无向图中,...

  • Swift最短路径之Dijkstra(单源最短路)算法

    Dijkstra“单源最短路”,是指指定一个点(源点)到其余各个顶点的最短路径。例如:求下图中的1号顶点到其他顶点...

  • 数据结构(十一):最短路径(Bellman-Ford算法)

    最短路径是指连接图中两个顶点的路径中,所有边构成的权值之和最小的路径。之前提到的广度优先遍历图结构,其实也是一种计...

网友评论

      本文标题:使用python编写广度优先搜索求到各个顶点的最短路径

      本文链接:https://www.haomeiwen.com/subject/gquenctx.html