0

C++ を使用してグラフを作成する必要があり、少し問題があります。私のグラフは、ユーザーの選択に応じて、マトリックスまたはリストに基づいて、有向または無向、加重または無加重にする必要があります。また、マトリックスとリストグラフを区別することは大したことではありません。2つの異なるクラスであるため、他のパラメーターに問題がありました。それらを区別する最も明白な方法は、2 つのbool変数を作成し、頂点の追加と削除のたびにそれらをチェックすることです。非常に明白で理解しやすいですが、頂点を追加または削除するたびに追加のif. サブクラスを書くこともできますが、それだけの価値があるかどうかは真剣に疑問です。

グラフ自体を表していない場合、すべてのライブラリを使用しても問題ありません。

4

1 に答える 1

3

有向および無向の最良のケースは、グラフに bool 変数を使用することですが、グラフに加重および有向があると仮定できますが、無向エッジの場合、a→b から 1 つのエッジと b→a から 1 つのエッジを追加します。また、重み関数がない場合は、その重みを に設定し1ます。

ただし、グラフ ライブラリを探している場合は、プログラミング言語に依存しますが、C++ で完全に実装されたグラフ ブースト ライブラリをお勧めします。他の言語で部分的に実装する人が多すぎます。

于 2012-04-30T11:05:05.483 に答える