AP過去問 令和5年度秋期 午前 問5
AP過去問 令和5年度秋期 午前 問4前の問題へ
AP過去問 令和5年度秋期 午前 問6次の問題へ
問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である要素は、それぞれ双方向リストの末尾、先頭を表す。
- 双方向リストへの要素の追加は、一次元配列の末尾に追加
回答・解説
アルファベット順とは関係なくDの次にCを入れるというちょっとややこしい問題ですが、落ち着いて考えれば解けます。
Headが1なので要素1が先頭です。要素はAです。先頭なのでPrev(前)に0が設定されていて、Next(次)に4が設定されています。
Aの次の要素は4番目のBです。BのPrevは1であってますね。Nextに3が設定されています。
Bの次の要素は3番目のDです。DのPrevは4であってますね。Nextに5が設定されています。
Dの次の要素は5番目のEです。EのPrevは3であってますね。Nextに2が設定されています。
Eの次の要素は2番目のFです。FのPrevは5であってますね。最後なので、Nextに0が設定されています。
順番をまとめると、A→B→D→E→Fになっています。これをA→B→D→C→E→Fにするというのが問題です。
Cは次のEを参照するので5が入ります。Cの前のDを参照するのでPrevには3が入ります。
したがって
ウ
が答えです。
AP過去問 令和5年度秋期 午前 問4前の問題へ
AP過去問 令和5年度秋期 午前 問6次の問題へ