問5令和5年度 秋期テクノロジ系
双方向リストを三つの一次元配列 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 である要素は,それぞれ双方向リストの末尾,先頭を表す。 ・双方向リストへの要素の追加は,一次元配列の末尾に追加

- アnext[6]:2,prev[6]:3
- イnext[6]:3,prev[6]:4
- ウnext[6]:5,prev[6]:3
- エnext[6]:5,prev[6]:4
正解はウ
解説 本サイト独自(IPA公表のものではありません)
ウ Headの1からnextをたどると,1,4,3,5,2となり,Dは要素番号3,その次のEは要素番号5である。配列末尾の要素番号6にCを追加してDとEの間に入れるので,prev[6]は3,next[6]は5となる。
- ア 要素番号3のDの次を,next[3]の5ではなくTailの2と取り違えている。これではCの次がFとなり,DとFの間に直接挿入する値になる。
- イ prev[3]の4を前,3を次としており,Dの次ではなくBとDの間に挿入した場合の値である。挿入位置をDの前後で逆にしている。
- エ prev[6]にDの要素番号3ではなくprev[3]の4を入れている。前の要素をD自身ではなくDの前のBと取り違えた値である。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和5年度 秋期 応用情報技術者試験 午前 問5