美文网首页
图的遍历

图的遍历

作者: 七秒钟回忆待续 | 来源:发表于2020-04-14 18:31 被阅读0次
from collections import deque


class Graph:
    """
    无向图,采用邻接表存储
    v 顶点个数
    adj 边
    visited 被访问过的定点
    d 队列
    pre 搜索路径
    """

    def __init__(self, v):
        self.v = v
        self.adj = [[] for _ in range(v)]

    def add_edge(self, s, t):
        self.adj[s].append(t)
        self.adj[t].append(s)

    def bfs(self, s, t):
        if s == t:
            return
        visited = [False for _ in range(self.v)]
        visited[s] = True
        d = deque()
        d.append(s)
        prev = [-1 for _ in range(self.v)]
        while d:
            k = d.popleft()
            for i in self.adj[k]:
                if visited[i]:
                    continue
                prev[i] = k
                if i == t:
                    self.print_path(prev, s, t)
                    return
                visited[i] = True
                d.append(i)

    def print_path(self, prev, s, t):
        if t != s:
            self.print_path(prev, s, prev[t])
        print(t)


if __name__ == '__main__':
    g = Graph(8)
    g.add_edge(0, 1)
    g.add_edge(3, 4)
    g.add_edge(0, 3)
    g.add_edge(3, 5)
    g.add_edge(1, 2)
    g.add_edge(2, 4)

    g.bfs(1, 4)

相关文章

  • 图的深度优先遍历

    数据结构遍历的意义 树的遍历 图的遍历 树的前序遍历 图遍历和树遍历区别 知识回顾 树的深度优先遍历 普通函数和递...

  • 图的深度优先遍历和马踏棋盘算法

    图的深度优先遍历思想 图的遍历通常有两种遍历次序方案: 深度优先遍历和广度优先遍历。深度优先遍历(DepthFir...

  • 图的DFS && BFS遍历

    对图的深度优先遍历: 对图的广度优先遍历:

  • 数据结构与算法学习-图的遍历

    图的遍历可以分为:深度优先遍历和广度优先遍历 一、深度优先遍历 深度优先遍历的实现思路 将图的顶点和边信息输⼊入到...

  • 图和遍历

    邻接矩阵定义一个图 其实就是二维数组来定义 图的遍历 深度搜索遍历 2.广度搜索遍历 遍历

  • 图 深度和宽度遍历

    图的深度遍历依赖于递归、 图的宽度优先遍历依赖于队列

  • 哈夫曼实现 图:十字链表,邻接多重链表,邻接表(无向),邻接表

    图的遍历: 无论是广度优先,还是深度优先都是以箭头方向右边的优先遍历; 广度优先遍历(无向图): 深度优先(无向图...

  • 11.图的广度优先遍历与无权图的最短路径

    图的广度优先遍历与无权图的最短路径 点击这里,前提知晓... 一、图的广度优先遍历 和树的广度优先遍历的思想一样,...

  • 基本数据结构

    一.图二.树 一.图 1.图的遍历: 通过深度优先遍历DFS和广度优先遍历BFS两种方式。深度优先遍历0 1 2 ...

  • 图的遍历

    树的遍历:从图中某一顶点出发,沿着一些边访问图中所有顶点,但使每个顶点仅被访问一次,这个过程叫做图的遍历。一个通常...

网友评论

      本文标题:图的遍历

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