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

pythonserver side programmingprogramming更新于 2025/12/2 10:20:17

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

因此,如果输入如下

那么输出将是 3,因为 3 位于中心。

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

  • seen := a new set

  • 对于图中的每个边 (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

相关文章


有用资源