「隣接行列」表現を使用してグラフを表現することにした場合、行列のサイズをどのように知ることができますか?
私が見たすべてのコード例は、マトリックスを初期化するためにオブジェクトにサイズが与えられていることを前提としていGraph
ますが、このサイズがどこから来たのかは明確ではありません。
つまり、グラフを作成するには、グラフのデータがファイルなどからロードされ、ファイルを読みながらグラフを作成するのが最善の方法であると想定しています (これまでのところ正しいですか?)。
これは、リストである代替表現を使用すると非常に簡単です。
ただしmatrix
、ファイルが実際にロードされるまで、頂点の数はわかりません。最初にファイル (何百万もの頂点を含む可能性があります) を読み取ってからグラフを作成するとは思いません。私には二重処理のように思えます。
では、通常の/最良の方法は何ですか?
注:matrix
代わりにリストを使用することの利点は認識していますが、ほとんどのドキュメントでは、密なグラフでは行列の使用が許容されると述べられているため (ただし、疎ではありません)、表現を使用するプログラムが適切に実装されている方法を理解しようとしています。