過去問解きまくり研究所 ホーム

平成22年度 春期 午前 問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
答えと解説を見る

✓ これが正解ウa,f

解説

つなぎ替わるポインタは切れ目の両側の2つだけです。

追加前の表を読み解くと、社員Aが次に社員Kを指し、社員Kが次に社員Tを指す並びになっています。ここで社員Aと社員Kの間に社員Gを割り込ませるとき、鎖のどこが切れるかを考えます。切れるのは社員Aと社員Kを結んでいた一組の結び目だけで、そこに新しい要素が入ります。前向きの鎖では社員Aの行き先が社員Gに変わり、後ろ向きの鎖では社員Kの戻り先が社員Gに変わります。社員Tは切れ目から離れているので、行きも戻りも書き換える理由がありません。社員Aの戻り先も、先頭であることが変わらないのでそのままです。判定の軸は、切れ目に触れている結び目だけが値を変え、それ以外は追加前の値を保つことです。

ほかの選択肢はなぜ違うのか

出典:平成22年度 春期 基本情報技術者試験 午前 問5

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)