修了試験 2025-07-27実施分 基本情報技術者試験 問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です。 双方向リストでは、各要素が「次の要素」と「前の要素」の2つのポインタをもちます。 追加前の並びは、社員A(100)、社員K(300)、社員T(200)の順です。 社員G(400)をAとKの間に入れると、並びはA、G、K、Tの順になります。 【計算】 Aの次ポインタaは、Kの300からGの400に変わります。 Aの前ポインタbは、先頭なので0のままです。 Tの次ポインタcは0のまま、前ポインタdはKの300のままです。 Kの次ポインタeは、Tの200のままです。 Kの前ポインタfは、Aの100からGの400に変わります。 Gには次ポインタx=300、前ポインタy=100が新たに設定されます。 【選択肢別解説】 1:× a、b、e、fは誤りです。 bはAの前ポインタで先頭を示す0のまま、eはKの次ポインタでTの200のままであり、変わりません。 2:× a、e、fは誤りです。 Kの後ろはTのままなので、Kの次ポインタeは200から変わりません。 3:○ a、fは正しいです。 Gの前にあるAの次ポインタと、Gの後ろにあるKの前ポインタの2つだけが400に変わります。 4:× b、eは誤りです。 bとeはどちらも変わらないポインタで、実際に変わるaとfが含まれていません。 【ポイント】 双方向リストへの挿入では、挿入位置の前の要素の次ポインタと、後ろの要素の前ポインタの2つを書き換えます。 これに加えて、新しい要素自身の2つのポインタを設定します。まとめて解く
修了試験 2025-07-27実施分を通しで解く(60問)→