応用情報技術者試験 応用情報技術者試験 令和5年度秋期 午前 問5: 双方向リストを三つの一次元配列 elem[i],next[i],prev[i] の組で実現する。双方向リストが図の状態のとき,要素 D の次に要素 C を挿入し

←
応用情報技術者試験 令和5年度秋期 午前
Q 55 / 80
双方向リストを三つの一次元配列 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 である要素は,それぞれ双方向リストの末尾,先頭を表す。 ・双方向リストへの要素の追加は,一次元配列の末尾に追加
双方向リストの状態を表す一次元配列elem・next・prevの箱配置図(Head=1, Tail=2)
この問の正解率:46.26%(856件)

解説

応用情報技術者試験 令和5年度秋期 午前 問5「双方向リストを三つの一次元配列 elem[i],next[i],prev[i] …」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約46%です。

正解

ウ. next[6]=5,prev[6]=3

正答率 46.3%(856人中 396人が正解)

問題の解説

図の next をたどると、Head=1 の A から 4(B)、3(D)、5(E)、2(F)の順で、リストは A, B, D, E, F の並びである。C を D の次に挿入するときは、配列の末尾の要素番号 6 に C を置き、D の要素番号 3 を prev[6] に、D の次だった E の要素番号 5 を next[6] に設定する。よって next[6]=5、prev[6]=3 となる。あわせて next[3] を 6 に、prev[5] を 6 に更新する。

選択肢ごとの解説

  • アprev[6]=3 は合っているが、next[6]=2 は F を指しており、D の次の E を飛ばしてしまう。D の次は E(要素番号 5)である。
  • イD の前(B と D の間)に C を挿入したときの値である。C の前が B(要素番号 4)、後ろが D(要素番号 3)になる。
  • ウ正しい。C の前は D(要素番号 3)、後ろは挿入前に D の次だった E(要素番号 5)になる。
  • エnext[6]=5 は合っているが、prev[6]=4 は B を指している。C の直前の要素は D(要素番号 3)なので誤りである。

応用情報技術者試験 令和5年度秋期 午前 の過去問一覧に戻る・問5

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード