カコモンノート

問5応用情報技術者 令和5年度 秋期

5 / 80問
令和5年度 秋期2023年

双方向リストを三つの一次元配列elem[i],next[i],prev[i]の組で実現する。双方向リストが図の状態のとき,要素Dの次に要素Cを挿入した後のnext[6],prev[6]の値の組合せはどれか。ここで,双方向リストは次のように表現する。 ・双方向リストの要素は,elem[i]に値,next[i]に次の要素の要素番号,prev[i]に前の要素の要素番号を設定 ・双方向リストの先頭,末尾の要素番号は,それぞれ変数Head,Tailに設定 ・next[i],prev[i]の値が0である要素は,それぞれ双方向リストの末尾,先頭を表す。 ・双方向リストへの要素の追加は,一次元配列の末尾に追加

この問題の図
問題に添えられた図。出典は下に書いています。

選択肢をえらぶと、答えと解説が出ます

選択肢をえらぶと、
ここに答えと解説が出ます
正答 3

解説

正解は3。図の状態をHead=1からnextでたどると、1(A)→4(B)→3(D)→5(E)→2(F)の順に並んでいる。追加は一次元配列の末尾に行うので、Cは要素番号6に入る。Dの次に挿入するのだから、Cの前はD(要素番号3)、Cの次はDの次だったE(要素番号5)になる。よってnext[6]=5、prev[6]=3で、ウの組合せ、つまり3が正しい。
あわせてnext[3]は6に、prev[5]は6に書き換わる。

  • 1は、next[6]を2(F)としており、Eを飛ばしてしまう。
  • 2は、next[6]=3、prev[6]=4で、Bの次に挿入した場合の値になる。
  • 4は、prev[6]を4(B)としており、Dの次への挿入にならない。

根拠:双方向リストの標準的な理解(挿入時は前後の要素番号を新要素に設定する)

KEY POINT
双方向リストへの挿入では、新要素のprevに直前の要素、nextに直前の要素が指していた要素を入れる。
出典:令和5年度 秋期 応用情報技術者試験 午前 問5(独立行政法人 情報処理推進機構(IPA))
独立行政法人情報処理推進機構(IPA)が公表している過去問題です。IPA の「過去問題の使用について」に基づき、IPA が指定する形で出典を明記して掲載しています(利用の許諾申請は不要)。問題文・選択肢の内容は変えていません。元の問題冊子から文字を起こす都合で、改行・字間の空白は省き、英数字の全角・半角は元とそろえていない箇所があります。図表は IPA が公表した問題冊子のものです。解説は当サイトが独自に作成したもので、IPA とは関係ありません。