
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
単方向リストの削除
条件を整理し、答えを選んでから解き方を確認しましょう。
添字はノード番号。head=1、next[1]=3,next[3]=2,next[2]=0(0は終端)。ノード3だけを外す更新はどれか。
答え・解き方を読む
next[1]←next[3]
図で見る
直前のノードから次のノードへつなぎ直す
元の順序は1→3→2→終端です。ノード3だけを外すには、直前のノード1のnextを、ノード3の次である2へ変更します。ノード番号順に並んでいるとは限りません。
設問の関係を整理した模式図です。寸法・角度・時間の縮尺や、施工・機器の全条件を表すものではありません。数値と適用条件は問題文で確認してください。
考える順序
- 1順序は1→3→2→終端
- 23の前の1を、3の次の2へ直接つなぐ
- 3next[1]を2へ変更すればよい
選択肢ごとの理由
- 比較 · next[2]←1
末尾から先頭へつなぐと循環が生じます。
- 正解 · next[1]←next[3]
順序は1→3→2→終端。3の前の1を、3の次の2へ直接つなぐ。next[1]を2へ変更すればよい。
- 比較 · next[3]←0
3から先を切ると2も到達不能になります。
- 比較 · head←3
先頭を3にすると1を外すことになります。