次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 図1に示すグラフの頂点には、1から順に整数で番号が付けられている。グラフは無向グラフであり、各頂点間には高々一つの辺がある。一つの辺は両端の頂点の番号を要素にもつ要素数2の整数型の配列で表現できる。例えば、{1, 3}は頂点1と頂点3を端点とする辺を表す。グラフ全体は、グラフに含まれる辺を表す要素数2の配列を全て格納した配列(以下、辺の配列という)で表現できる。辺の配列の要素数はグラフの辺の個数と等しい。図1のグラフは整数型配列の配列{{1, 3}, {1, 4}, {3, 4}, {2, 4}, {4, 5}}と表現できる。(図1: グラフの例。以下は図の構造の説明。) 関数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[v, v] ← 1
- ウadjMatrix[u, v] ← 1
- エadjMatrix[u, v] ← 1 adjMatrix[v, u] ← 1
- オadjMatrix[v, u] ← 1
- カadjMatrix[v, v] ← 1
正解と解説
正解:エ adjMatrix[u, v] ← 1 adjMatrix[v, u] ← 1
隣接行列では、頂点uと頂点vを結ぶ辺があるときにu行v列を1にする。無向グラフなので辺に向きはなく、行列は対称になるためv行u列も同時に1にしなければならない。片方だけでは対称行列にならず、図2の隣接行列を再現できない。
選択肢ごとの解説
- ア対角成分を1にしており、辺の情報がまったく記録されない。
- イ両端点の対角成分を1にするだけで、辺の対応が表現できていない。
- ウu行v列だけを1にしており、無向グラフに必要な対称性が欠ける。
- エu行v列とv行u列の両方を1にする、無向グラフの隣接行列を正しく作る処理。
- オv行u列だけでは対称にならず、もう一方の成分が0のまま残る。
- カ対角成分を操作しているだけで、辺を表現していない。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問4
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2025年度 公開問題 科目B 問3
- 図の木構造は2分探索木である。a〜gの値の大小関係として,適切なものはどれか。ここで,a〜gの値は重複しないものとする。2025年度 公開問題 科目A 問3
- 双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員Gを社員Aと社員Kの間に追加する。追加後の表…2023年度 公開問題 科目A 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 手続delNodeは、単方向リストから、引数posで指定…2022年度 公開問題 科目B 問10
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。