SkillStack
テクノロジ系2 / 20問

基本情報技術者試験 令和5年度 科目A 公開問題 問2

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

基本情報技術者試験 令和5年度 科目A 公開問題 問2の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

図の追加前の表を次ポインタの順にたどると、社員Aのアドレス100、社員Kのアドレス300、社員Tのアドレス200という並びです。社員Gのアドレス400を社員Aと社員Kの間に挿入するには、Aの次をGに、Kの前をGに変更します。

具体的には、Aの次ポインタaは300から400へ変わります。一方、Aは引き続き先頭なので、前ポインタbは0のままです。Kの次は引き続きTなのでeは200のままですが、Kの前ポインタfは100から400へ変わります。Tの次ポインタcは0、前ポインタdは300のままで変わりません。新しいGには、次ポインタx=300、前ポインタy=100を設定しますが、xとyはa~fには含まれません。したがって、値が変わるのはaとfだけです。

アは誤りです。bとeは追加前後で値が変わりません。

イは誤りです。eはKからTへのリンクを表す200のままです。

エは誤りです。bとeはいずれも変わらず、実際に変わるaとfが含まれていません。

【ポイント】 双方向リストへの挿入では、挿入位置の前後にある要素のリンクを付け替えます。 今回はAの「次」とKの「前」の二つが変更対象です。 新しい要素自身の次ポインタと前ポインタも設定しますが、既存要素の変更箇所とは分けて考えます。

出典:令和5年度 基本情報技術者試験 科目A 公開問題 問2
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の20問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める