AP過去問 令和5年度秋期 午前 問5

提供:yonewiki

AP過去問 令和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である要素は、それぞれ双方向リストの末尾、先頭を表す。
  • 双方向リストへの要素の追加は、一次元配列の末尾に追加


AP R5 2Fall AMQ5 Fig1.png

 

回答・解説

 アルファベット順とは関係なく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次の問題へ

AP過去問 令和5年度秋期 午前 問題に戻る