当前位置: 首页 > 知识库问答 >
问题:

用BFS求图的直径

龙成仁
2023-03-14

Algo求图的直径如下:

  1. 在任何arbirtray顶点上运行BFS,并记住最后访问的节点(例如t)
  2. 从t运行BFS,并记住最后访问的节点(例如t')
  3. t和t'之间的最短距离是图的直径。
A------G-----C------D  
|  
E------F------B

共有1个答案

习洲
2023-03-14

只有当你想找到一个非循环树的直径时,你的算法才会起作用。如果要求图的直径,可以使用Floyd-Warshall的全对最短路径算法。然后遍历整个距离矩阵,就可以找到图的直径。

 类似资料:
  • 你有一辆2005年本田雅阁,油箱里还剩50英里(最大重量)。在50英里半径范围内,你可以访问哪些麦当劳的位置(图节点)?这是我的问题。 如果你有一个加权有向无环图,你如何找到在给定的权限制内可以访问的所有节点? 我知道Dijkstra的算法,但我似乎找不到任何关于它在最小路径问题之外的用途的文档。在我的例子中,我们没有特别想结束的节点,我们只想在不超过最大权重的情况下尽可能多地结束。似乎您应该能够

  • 小结 深搜和广搜的相同点 深搜和广搜的框架基本相同,都需要解决如下四个问题: 如何表示状态? 如何扩展状态? 在扩展状态的过程中,如何判断新状态是否有效? 在扩展状态的过程中,如何判断重复? 深搜和广搜的最显著区别,在于第三步,扩展状态的时候,顺序不一样。代码层面上,仅需要修改一行代码,就可以将广搜变成深搜,那就是,把队列queue替换为栈stack,就变成深搜了。 适用场景 输入数据:没什么特征

  • 我试图通过一个节点图进行广度优先搜索遍历,然后我将尝试找到一个节点和另一个节点之间的最短距离。这就是维基百科的BFS算法: 我有自己的节点类,节点的距离设置为最大。我的版本基于第一个代码的风格: 我试图让这段代码也能找到一个节点和另一个节点之间的最短路径。例如 我如何修改BFS代码来实现这一点?如果在这个循环中是不可能的,那么还有什么其他的方法呢? 如果我的代码或我的要求有任何混淆,请通知我。非常

  • bfs

    bfs 是基于 Facebook haystack 用 Golang 实现的小文件存储系统。 特性 高吞吐量和低延迟 容错性 高效 维护简单 directory directory主要负责请求的均匀调度和元数据管理,元数据存放在hbase,由gosnowflake产生文件key store store主要负责文件的物理存储 pitchfork pitchfork负责监控store的服务状态、可用性

  • 我有一个无向图,从中我重新绘制了相同的图,但是是树状结构(有层次)。我知道广度优先搜索(BFS)算法是如何工作的,但我不知道如何从图转换 在这里,在维基百科的这篇文章中,如果你向下滚动一点,你会看到两张德国城市的照片。即使在阅读了那里的伪代码后,我还是不明白你是如何从第一张照片变成第二张的。

  • 简介 当题目看不出任何规律,既不能用分治,贪心,也不能用动规时,这时候万能方法——搜索, 就派上用场了。搜索分为广搜和深搜,广搜里面又有普通广搜,双向广搜,A*搜索等。 深搜里面又有普通深搜,回溯法等。 广搜和深搜非常类似(除了在扩展节点这部分不一样),二者有相同的框架,如何表示状态? 如何扩展状态?如何判重?尤其是判重,解决了这个问题,基本上整个问题就解决了。