基本情報技術者試験 - 令和5年公開問題 - 問2

双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員Gを社員Aと社員Kの間に追加する。追加後の表のポインタ a~f の中で追加前と比べて値が変わるポインタだけを全て列記したものはどれか。

表
アドレス社員名次ポインタ前ポインタ
100社員A3000
200社員T0300
300社員K200100

追加後の表
アドレス社員名次ポインタ前ポインタ
100社員Aab
200社員Tcd
300社員Kef
400社員Gxy
アa,b,e,f
イa,e,f
ウa,f
エb,e
答え : ウ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
双方向リスト構造にデータを挿入した際に,値が変わるポインタを求める問題です。表では社員Aの次に社員K,社員Kの次に社員Tという順でリストがつながっており,この社員Aと社員Kの間に新たに社員Gを挿入します。

挿入前は社員Aの次ポインタが社員K(アドレス300)を指していましたが,挿入後は社員Aの次ポインタは新しく追加された社員G(アドレス400)を指すように変わるため,aの値が変化します。

また,社員Kの前ポインタは,挿入前は社員A(アドレス100)を指していましたが,挿入後は社員G(アドレス400)を指すように変わるため,fの値も変化します。

一方,社員Tに関するポインタ(cとd)は,社員Aと社員Kの間への挿入の影響を受けないため変化しません。また,社員Kの次ポインタ(e)も,社員Kの次に社員Tが続くという関係は変わらないため,そのままです。したがって,値が変わるのはaとfの二つであり,正解は選択肢「ウ」です。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる