修了試験 2016-07-24実施分 基本情報技術者試験 問6
双方向のポインタをもつリスト構造のデータを表に示す。 この表において新たな社員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
正答3
解説
正解は3です。 双方向リストへの要素の挿入で、どのポインタを書き換えるかを問う問題です。 追加前は、社員A(100)、社員K(300)、社員T(200)の順につながっています。 社員G(400)をAとKの間に入れると、A、G、K、Tの順になります。 【選択肢別解説】 1:× bは社員Aの前ポインタで、Aは先頭のままなので0から変わりません。 eは社員Kの次ポインタで、Kの次は引き続き社員T(200)なので変わりません。 2:× aとfは変わりますが、eは変わりません。 社員Kの次ポインタeは、追加後も社員T(200)を指したままです。 3:○ 社員Aの次ポインタaは300から400(社員G)に変わります。 社員Kの前ポインタfは100から400に変わり、それ以外のb、c、d、eは追加前と同じ値です。 4:× bもeも追加前と同じ値のままです。 実際に変わるのはaとfです。 【ポイント】 双方向リストに1件挿入するとき、既存の要素で書き換えるのは「前の要素の次ポインタ」と「後ろの要素の前ポインタ」の2つです。 新しい要素自身のポインタ(ここでは次ポインタxに300、前ポインタyに100)を設定することも必要です。まとめて解く
修了試験 2016-07-24実施分を通しで解く(80問)→