アルゴリズムとプログラミング
基本情報技術者試験|単方向連結リストの各ノードは val(整数)と next(参照、なければ NULL)をもつ。次の擬似言語は、値…
単方向連結リストの各ノードは val(整数)と next(参照、なければ NULL)をもつ。次の擬似言語は、値 target をもつ最初のノードを 1 つだけ削除する手続である。head→[600]→[755]→[755]→[900]→NULL に対し target=755 を与えて実行したあと、head から末尾までの val の並びはどれか。
○手続: deleteFirst(ノード: head, 整数型: target)
ノード: cur ← head
ノード: prev ← NULL
while (cur が NULL でない)
if (cur.val が target と等しい)
prev.next ← cur.next
return
endif
prev ← cur
cur ← cur.next
endwhileイ{600, 755, 900}
ア{600, 900}
ウ{755, 900}
エ{600, 755, 755, 900}
正解
イ.{600, 755, 900}
手続は最初に target と一致したノードを prev.next の付け替えで 1 つだけ外し、return で終了する。2 番目の 755 が外れて並びは {600, 755, 900} となるため イが正しい。
?選択肢ごとの解説
イ ○手続は最初に target と一致したノードを prev.next の付け替えで 1 つだけ外し、return で終了する。2 番目の 755 が外れて並びは {600, 755, 900} となるため イが正しい。
ア ×値が 755 のノードをすべて削除したと誤認し {600, 900} とした、return による 1 個限定の打ち切りを見落とした誤りである。
ウ ×先頭 600 と 755 の両方を削除したと取り違えて {755, 900} とした、削除対象を広げすぎた誤りである。
エ ×どのノードも削除されず元の並び {600, 755, 755, 900} のままとした、target 一致時の付け替えを行わなかった誤りである。
アルゴリズムとプログラミングの他の問題
単方向連結リストの各ノードは val と next(参照、末尾は NULL)をもつ。次の擬似言語は、リスト a…単方向連結リストの各ノードは val と next(参照、末尾は NULL)をもつ。次の擬似言語は、low を 1…単方向連結リストと比べた双方向連結リストの利点として最も適切なものはどれか。単方向連結リストの各ノードはメンバ val(整数)と next(次ノードへの参照。なければ NULL)をもつ。先頭ノード…単方向連結リスト head→[10]→[20]→[30]→NULL がある。各ノードは val と next…単方向連結リストの各ノードはメンバ val(整数)と next(次ノードへの参照。なければ…空の 2 分探索木に対し、次の擬似言語の挿入規則に従って 400, 200, 600, 100, 300, 500…次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=500、500 の左の子=300、500…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0110
