2016-11-22 14 views
0

このバージョンのKruskalのアルゴリズムは、隣接リストを持つエッジを表します。 代わりに隣接行列を使用するように擬似コードを変更するにはどうすればよいですか?Kruskalのアルゴリズム - 行列データ構造に変更しますか?

Kruskal Pseudo-code

私はそのゼロでない限り、我々はインスタンス(i、j)のために、エッジの重みを使用する必要がありますを考えていました。 i、jに頂点を割り当てる。私はKruskalsのこの疑似コードで少し混乱するかもしれません。

+2

どのデータ構造を使用する必要があるかを指定する擬似コードには何もありません。しかし、重みを使ってエッジをソートすることは、補助的な表現がないマトリックスでは難しいでしょう。 – Henry

答えて

2

Henryで指摘されているように、擬似コードでは、使用する具体的なデータ構造を指定していませんでした。この場合、グラフの隣接リスト表現は隣接行列表現よりも便利であるように見えます。

隣接行列については、行列のすべてのエントリをスキャンして、グラフGの行を4行目で並べ替える必要があります。隣接リスト表現を使用する場合はまったく同じことを行っています。

たとえば、PriorityQueueを使用して、エッジを降順でソートし、切断された頂点を持つエントリを破棄することができます。その後、このデータ構造を行5のfor-loopに反復することができます。

関連する問題