アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20250727 実施分 問5
双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員 G を社員 A と社員 K の間に追加する。追加後の表のポインタ a ~ f の中で追加前と比べて値が変わるポインタだけを全て列記したものはどれか。
表
追加後の表
| アドレス | 社員名 | 次ポインタ | 前ポインタ |
|---|---|---|---|
| 100 | 社員 A | 300 | 0 |
| 200 | 社員 T | 0 | 300 |
| 300 | 社員 K | 200 | 100 |
| アドレス | 社員名 | 次ポインタ | 前ポインタ |
|---|---|---|---|
| 100 | 社員 A | a | b |
| 200 | 社員 T | c | d |
| 300 | 社員 K | e | f |
| 400 | 社員 G | x | y |
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20250727 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ウ
覚える知識
双方向連結リストへの挿入操作
双方向リストの挿入では、挿入位置の前ノードの次ポインタと後ノードの前ポインタを新ノードに付け替える。
この問題で必要なこと
A と K の間に G を挿入すると、A の次ポインタ(a:300→400)と K の前ポインタ(f:100→400)だけが変わる。G の x と y は新規なので比較対象外。
ひっかけ
新ノード G 自身のポインタや、無関係なノードのポインタも変わると考えさせる。
この知識の出題:本試験系 2 回・免除試験 6 回(公開問題での観測値)