※本情報は解説作成時点のもので、閲覧時点では法改正等により情報が変更になっている場合がございます。あらかじめご理解いただければ幸いです。
正解は「C.a.f」です。
社員Gを社員Aと社員Kの間に追加すると、社員Aの次ポインタと社員Kの前ポインタのみが変更されます。
この記事では、基本情報技術者試験(FE)試験(令和5年度)で出題された過去問の第2問「双方向リストのポインタ変更」について、試験対策の観点からわかりやすく解説します。
Contents
双方向リストの構造
前ポインタ ← データ → 次ポインタ
双方向リストは、各ノードが「次ポインタ」と「前ポインタ」の2つを持つデータ構造です。
追加前の並びは、社員A(100)→社員K(300)→社員T(200)です。
追加処理のポイント
社員G(400)を社員Aと社員Kの間に挿入すると、次のように接続が変わります。
- 社員Aの次ポインタ:300 → 400(aが変更)
- 社員Gの前ポインタ:100
- 社員Gの次ポインタ:300
- 社員Kの前ポインタ:100 → 400(fが変更)
社員Tは位置が変わらないため、ポインタは変更されません。
他の選択肢との違い
- a.b.e.f:bとeは変更されない
- a.e.f:eは変更されない
- b.e:いずれも変更されない
変更されるのは、挿入位置の直前ノードの「次ポインタ」と直後ノードの「前ポインタ」です。
問われているポイント
この問題では、双方向リストにおける挿入操作時のポインタ更新箇所を正しく理解しているかが問われています。
図や表を書いて整理するとミスを防げます。
気を付けてほしい点(勘違いしやすいポイント)
- 挿入ノード自身のポインタは「追加前と比較」する対象ではない
- 変更されるのは前後のノードのみ
補足
双方向リストでは、前後両方のポインタを更新する必要がある点が重要です。
基本情報技術者試験(FE)試験での出題パターン
基本情報技術者試験(FE)試験では、リスト構造やスタック、キューなどの基本データ構造が頻出です。
特にポインタの更新箇所を問う問題は定番テーマです。
この知識が使われている問題
まとめ
- 挿入時に変更されるのは前後ノードのみ
- 今回変更されるのはaとf