0

アルゴリズム:

For each edge (u, v) in the Adjacency list:
If u and v do not belong to the same set:
   Union(u, v)
else:
  return true // cycle detected
return false

グラフ:

(1)------(2)

隣接リスト:

[1] -> [2]

[2] -> [1]

素集合:

{{1}、{2}}

反復 1 :

エッジ e = (1, 2)

ユニオン(1, 2)

素集合 = {{1, 2}}

反復 2 :

エッジ e = (2, 1)

2 と 1 の両方が同じセットに属しているため、アルゴリズムはサイクルを検出します。グラフにサイクルが含まれていないことは明らかです。

このアルゴリズムは、有向グラフに対して問題なく機能します。この分析を手伝ってください。

4

1 に答える 1