修了試験 2012-12-16実施分 基本情報技術者試験 問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
正答3
解説
正解は3です。 双方向リストでは、各要素が「次の要素」と「前の要素」の両方のアドレスを持ちます。 追加前の並びは、社員A(100)、社員K(300)、社員T(200)の順です。 社員G(400)をAとKの間に入れると、並びはA、G、K、Tになります。 【追加後の各ポインタ】 Aの次ポインタaは、300から400(G)に変わります。 Aの前ポインタbは、先頭なので0のままです。 Tの次ポインタcは末尾なので0、前ポインタdはKを指す300のままです。 Kの次ポインタeは、Tを指す200のままです。 Kの前ポインタfは、100から400(G)に変わります。 なお、Gの次ポインタxは300、前ポインタyは100になります。 【選択肢別解説】 1:× bは先頭要素Aの前ポインタで0のまま、eはKの次ポインタでTを指す200のままです。 変わるのはaとfだけです。 2:× eはKの次ポインタで、挿入後もTを指す200のままです。 変わるのはaとfだけです。 3:○ AとKの間に入れるので、Aの次(a)とKの前(f)だけがGを指すように変わります。 4:× bとeはどちらも変わりません。 実際に変わるのはaとfです。 【ポイント】 双方向リストへの挿入では、挿入位置の前の要素の次ポインタと、後ろの要素の前ポインタの2か所が変わります。 新しい要素自身の2つのポインタも設定しますが、問われているのは既存のa〜fだけです。まとめて解く
修了試験 2012-12-16実施分を通しで解く(80問)→