グラフアルゴリズムを実装するためのC++ライブラリを作成しています。クラス「グラフ」の適切な表現について考えています。
グラフ(方向付け/非方向付け)と表現(リスト/マトリックス)の2つの主要なタイプがあります。
アルゴリズムに問題はありませんが、適切で堅牢なデータ構造(必要に応じてクラスの継承シーケンスを含む)を提案したいと思います。
現在、グラフを表す特別なデータ構造は使用していません。静的メソッドには、入力パラメーターとして発生率、隣接行列...があります。
そのようなクラスは、グラフの両方の表現を保持する必要がありますか、それとも両方の表現間の変換関数を持つ1つの表現のみを保持する必要がありますか?どちらが好ましいでしょうか?
この問題は、さまざまなアプローチを使用する多くの人々によって解決されています。