隣接行列を使用して、重み付けされた単方向の大きなグラフのすべての頂点を表しています。このグラフでは、頂点をそれ自体に接続するエッジはありません。これにより、隣接行列のすべての対角要素が作成されますnull
。私のグラフは大きいので、隣接行列では左三角形の要素を保存する必要はありません。以下は、隣接行列を含む小さなサンプル グラフです。
一方向グラフでは、左三角形は右三角形の鏡像です。すなわちadjacency_matrix[i][j]
、adjacency_matrix[j][i]
同じです。では、なぜ左三角形を保存するのでしょうか。大きなグラフの場合、このトリックは非常に多くのメモリを節約できます。同時に、頂点をそれ自体に接続するエッジがないため、対角要素もゼロになります。すなわちadjacency_matrix[i][i]
、ゼロです。しかし、どうすればこれを実装できますか? ここで 2D 配列を使用できますか?