基本情報技術者試験 - 令和7年7月修了 - 問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,b,e,f |
|---|---|
| イ | a,e,f |
| ウ | a,f |
| エ | b,e |
答え : ウ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
双方向リスト構造にデータを挿入する際,どのポインタが変化するかを問うものです。もとのリストは社員A(アドレス100)→社員K(アドレス300)→社員T(アドレス200)という順番で繋がっており,それぞれ次ポインタと前ポインタを持っています。
ここに新たに社員Gを社員Aと社員Kの間に追加します。挿入後,社員Aの次は社員Gになるため,社員Aの次ポインタ(a)が400(社員Gのアドレス)に変わります。また,社員Kの前は社員Gになるため,社員Kの前ポインタ(f)が400に変わります。一方,社員Aの前ポインタ(b)や社員Kの次ポインタ(e)は挿入前後で変化しません。社員Tに関するポインタ(cとd)も,社員Tの前後関係は変わらないため変化しません。従って,値が変わるのはaとfの2つだけであり,正解は選択肢「ウ」です。
誤りの選択肢は,挿入によって影響を受けないポインタまで変わると誤って判断した場合に選びやすいものです。リスト構造の挿入操作では,挿入位置の前後の要素のポインタだけが更新されることを理解することが重要です。
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
双方向リスト構造にデータを挿入する際,どのポインタが変化するかを問うものです。もとのリストは社員A(アドレス100)→社員K(アドレス300)→社員T(アドレス200)という順番で繋がっており,それぞれ次ポインタと前ポインタを持っています。
ここに新たに社員Gを社員Aと社員Kの間に追加します。挿入後,社員Aの次は社員Gになるため,社員Aの次ポインタ(a)が400(社員Gのアドレス)に変わります。また,社員Kの前は社員Gになるため,社員Kの前ポインタ(f)が400に変わります。一方,社員Aの前ポインタ(b)や社員Kの次ポインタ(e)は挿入前後で変化しません。社員Tに関するポインタ(cとd)も,社員Tの前後関係は変わらないため変化しません。従って,値が変わるのはaとfの2つだけであり,正解は選択肢「ウ」です。
誤りの選択肢は,挿入によって影響を受けないポインタまで変わると誤って判断した場合に選びやすいものです。リスト構造の挿入操作では,挿入位置の前後の要素のポインタだけが更新されることを理解することが重要です。