アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20121216 実施分 問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免除 修了試験 20121216 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:ウ
覚える知識
双方向連結リストへの挿入操作
双方向リストへの挿入では、挿入位置の前要素の次ポインタと後要素の前ポインタだけを新要素に向け直す。
この問題で必要なこと
AとKの間にGを挿入すると、Aの次ポインタ(a)=400、Kの前ポインタ(f)=400に変わる。Aの前ポインタ(b)、Kの次ポインタ(e)、Tのポインタは変わらない。
ひっかけ
新要素のポインタ(x,y)や、前後の要素の反対側のポインタまで書き換わると考えさせる。
この知識の出題:本試験系 2 回・免除試験 6 回(公開問題での観測値)。頻出知識ランキング255位(全1,254件中)。