次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。…
科目B アルゴリズムとプログラミング 科目B 問4
次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。単方向リストを,配列dataList と配列pointerList の二つの配列で表現する。dataList にリストの要素の値を格納し,pointerList にリストの次の要素に対応するdataList の要素番号を格納する。単方向リストの先頭は,dataList[1] 及びpointerList[1] の組みである。単方向リストの末尾に対応するpointerList の要素は未定義である。dataList のうち単方向リストの要素の値を格納していない要素と,対応するpointerList の要素は未定義である。プログラムが扱うdataList 及びpointerList の内容を図1 に示す。先頭の次の要素の要素番号は,pointerList[1] に格納された3 であり,値はdataList[3] に格納された20 である。その次の要素の要素番号はpointerList[3] に格納された2 であり,値はdataList[2] に格納された30 である。関数orderList は,図1 のdataList 及びpointerList で表現した単方向リストの値を,単方向リストの先頭からたどって順番に格納した配列を返す。関数orderListが返す配列を図2 に示す。
正答 エ
正答は エ。a:pointerList[p]、b:pointerList[p] です。
p は、いま見ているリストの要素の要素番号です。dataList[p] の値を linearList に追加したら、次の要素の要素番号pointerList[p] に p を進めます(b)。ただし、いま見ている要素が末尾なら、pointerList[p] は未定義なので、その場合は繰返しを終えます(a)。
【トレース(エの場合)】
dataList = {10, 30, 20, 40, 未定義}
pointerList = {3, 4, 2, 未定義, 未定義}、p = 1
解説の続きをみる続きを閉じる
i = 1:10 を追加 → pointerList[1] = 3(定義済み)→ p ← 3
i = 2:dataList[3] = 20 を追加 → pointerList[3] = 2 → p ← 2
i = 3:dataList[2] = 30 を追加 → pointerList[2] = 4 → p ← 4
i = 4:dataList[4] = 40 を追加 → pointerList[4] は未定義
→ 繰返しを終了
linearList = {10, 20, 30, 40} となり、図 2 と一致します。
【ほかの選択肢】
ア a:dataList[p]、b:i 誤り
→ p は i と同じ値になり、ポインタをたどらない。
i = 2 で p = 1 なので 10 をもう一度追加し、結果は{10, 10, 30, 20, 40} になる
イ a:dataList[p]、b:pointerList[p] 誤り
→ i = 4 までは 10, 20, 30, 40 と正しく追加されるが、
dataList[4] = 40 は定義済みなので終了せず、p ← pointerList[4]
(未定義)となる。i = 5 で dataList[p] を参照できない
ウ a:pointerList[p]、b:i 誤り
→ 終了の判定は正しいが、p が i と同じ値になり、ポインタを
たどらない。結果は {10, 10, 30, 20, 40} になる
【ポイント】
単方向リストの末尾は「次を指すポインタが無い要素」です。
終了の判定にはデータではなくポインタを使います。
出典:令和8年度 基本情報技術者試験 科目B 公開問題 問4(独立行政法人情報処理推進機構)出典元ページ
最終更新日
「科目B アルゴリズムとプログラミング」のほかの問題
- 2024年度(令和6年度)公開問題 科目B 問4次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2024年度(令和6年度)公開問題 科目B 問5次のプログラム中の [a] ~ [c] に入れる正しい答えの組合せを,解答群の中から選べ
- 2025年度(令和7年度)公開問題 科目B 問1次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
- 2025年度(令和7年度)公開問題 科目B 問2次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2025年度(令和7年度)公開問題 科目B 問3次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
- 2025年度(令和7年度)公開問題 科目B 問4次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。
スポンサーリンク







