用 Python 查找星形图中心点的程序


假设我们有一个无向星形图,具有 n 个从 1 到 n 标记的节点。众所周知,星形图是一个存在一个中心节点的图,并且有恰好 n - 1 条边缘将中心节点与每个其他节点连接起来。我们必须找到给定星形图的中心。

因此,如果输入如下所示

则输出将为 3,因为 3 位于中心。

为解决此问题,我们将遵循以下步骤 −

  • seen := 一个新集合

  • 对于图中的每个边缘 (u,v),执行

    • 如果 u 在 seen 中,则

      • 返回 u

    • 如果 v 在 seen 中,则

      • 返回 v

    • 将 u 插入 seen

    • 将 v 插入 seen

示例

让我们看看以下实现以获得更好的理解 −

def solve(graph):
   seen = set()

   for u,v in graph:
      if u in seen:
         return u
      if v in seen:
         return v
      seen.add(u)
      seen.add(v)

graph = [(1,3),(2,3),(4,3),(5,3),(6,3)]
print(solve(graph))

输入

[(1,3),(2,3),(4,3),(5,3),(6,3)]

输出

3

更新时间:2021 年 10 月 6 日

476 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.