修了試験 2022-07-24実施分 基本情報技術者試験 問8
双方向のポインタをもつリスト構造のデータを表に示す。 この表において新たな社員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の順になります。 【各ポインタの変化】 a(Aの次ポインタ)は、Kを指す300から、Gを指す400に変わります。 b(Aの前ポインタ)は、Aが先頭のままなので0で変わりません。 c(Tの次ポインタ)は、Tが末尾のままなので0で変わりません。 d(Tの前ポインタ)は、直前がKのままなので300で変わりません。 e(Kの次ポインタ)は、次がTのままなので200で変わりません。 f(Kの前ポインタ)は、Aを指す100から、Gを指す400に変わります。 なお、Gの次ポインタxは300、前ポインタyは100になります。 【選択肢別解説】 1:× bとeは値が変わらないので、含めるのは誤りです。 変わるのはaとfだけです。 2:× eはKの次ポインタで、Tを指す200のまま変わりません。 3:○ 値が変わるのは、Aの次ポインタaとKの前ポインタfの2つです。 4:× bは0のまま、eは200のままで変わりません。 実際に変わるaとfが含まれていないので誤りです。 【ポイント】 双方向リストの途中に1件挿入すると、直前の要素の次ポインタと直後の要素の前ポインタが書き換わります。 挿入する要素自身の2つのポインタも、新たに設定する必要があります。まとめて解く
修了試験 2022-07-24実施分を通しで解く(80問)→