2012-04-30 35 views
0

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

すべてのライブラリは、グラフ自体を表現していない場合は使用できます。

答えて

3

あなたのグラフにはbool変数を使用していますが、グラフは重み付けされていると仮定できますが、無向辺の場合は→bから1辺を追加し、bの場合は→aから1つの辺を追加します。また、重み関数がない場合は、その重みを1に設定します。

しかし、グラフライブラリを探しているのであれば、プログラミング言語に依存しますが、私は完全にC++で実装されたgraph boost libraryを提案しており、他の言語では部分的に実装しています。

+0

ありがとう、私はbool変数を使用します。 – Psyhister

関連する問題