双方向リストを三つの一次元配列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] | prev[6] | |
ア | 2 | 3 |
イ | 3 | 4 |
ウ | 5 | 3 |
エ | 5 | 4 |
解答
ウ
解説
要素Cを挿入する前の状態(要素番号5までの状態)では、Headおよびnextの情報から
1(A) → 4(B) → 3(D) → 5(E) → 2(F) → 0
という順序であることがわかります。
ここで、要素Dの次に要素Cを挿入すると
1(A) → 4(B) → 3(D) → 6(C) → 5(E) → 2(F) → 0
となることから、要素6の次が要素5、要素6の前が3、つまり
next[6] = 5 prev[6] = 3
となります。
参考情報
分野・分類
分野 | テクノロジ系 |
大分類 | 基礎理論 |
中分類 | アルゴリズムとプログラミング |
小分類 | データ構造 |
出題歴
- AP 令和5年度秋期 問5