次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。
図1に示すグラフの頂点には 1から順に整数で番号が付けられている。グラフは無向グラフであり、各頂点間には高々一つの辺がある。一つの辺は両端の頂点の番号を要素にもつ要素数2の整数型の配列で表現できる。例えば、 {1, 3} は頂点1と頂点3を端点とする辺を表す。グラフ全体は、グラフに含まれる辺を表す要素数2の配列を全て格納した配列(以下,辺の配列という)で表現できる。辺の配列の要素数はグラフの辺の個数と等しい。図1のグラフは整数型配列の配列{{1, 3}, {1, 4}, {3, 4}, {2, 4}, {4, 5}}と表現できる。

関数 edgesToMatrixは、辺の配列を隣接行列に変換する。隣接行列とは、グラフに含まれる頂点の個数と等しい行数及び列数の正方行列で、i行j列の成分は頂点iと頂点jを結ぶ辺があるときに1となり、それ以外は0となる。行列の対角成分は全て0で、無向グラフの場合は対称行列になる。図1のグラフを表現する隣接行列を図2に示す。

関数 edgesToMatrix は、引数 edgeList で辺の配列を、引数 nodeNum でグラフの頂点の個数をそれぞれ受け取り、隣接行列を表す整数型の二次元配列を返す。
[プログラム]
○整数型の二次元配列: edgesToMatrix(整数型配列の配列: edgeList, 整数型: nodeNum)
整数型の二次元配列: adjMatrix ← {nodeNum行nodeNum列の 0}
整数型: i, u, v
for (iを1から edgeListの要素数まで1ずつ増やす)
u ← edgeList[i][1]
v ← edgeList[i][2]
endfor
return adjMatrix
空欄に入れる処理 | |
|---|---|
ア | adjMatrix[u, u] ← 1 |
イ | adjMatrix[u, u] ← 1 |
ウ | adjMatrix[u, v] ← 1 |
エ | adjMatrix[u, v] ← 1 |
オ | adjMatrix[v, u] ← 1 |
カ | adjMatrix[v, v] ← 1 |