アルゴリズムとプログラミング
基本情報技術者試験|単方向連結リストの各ノードはメンバ val(整数)と next(次ノードへの参照。なければ…
単方向連結リストの各ノードはメンバ val(整数)と next(次ノードへの参照。なければ NULL)をもつ。次の擬似言語は、先頭 head から連なるリストの向きを逆転させ、新しい先頭ノードを返す手続である。head→[105]→[270]→[330]→[480]→NULL を与えて実行したとき、戻り値として返される新しい先頭ノードの val はどれか。
○ノード: reverse(ノード: head)
ノード: prev ← NULL
ノード: cur ← head
ノード: nxt
while (cur が NULL でない)
nxt ← cur.next
cur.next ← prev
prev ← cur
cur ← nxt
endwhile
return prevエ480
ア15
イ105480
ウ330
正解
エ.480
反転では各ノードの next を 1 つ前のノードへ付け替え、prev が逆順リストの先頭を保持する。最後に prev が指すのは元の末尾 480 であり、戻り値の val は 480 となるため エが正しい。
?選択肢ごとの解説
エ ○反転では各ノードの next を 1 つ前のノードへ付け替え、prev が逆順リストの先頭を保持する。最後に prev が指すのは元の末尾 480 であり、戻り値の val は 480 となるため エが正しい。
ア ×反転を行わず元の先頭 105 をそのまま返すつもりで桁を取り違え 15 とした、prev と head の取り違えと桁の誤りである。
イ ×先頭 105 と末尾 480 を連結して 105480 とした、val を数値結合と取り違えた桁の誤りである。
ウ ×中央付近のノード 330 を新先頭と誤った、付け替えの最終位置を見失った誤りである。
アルゴリズムとプログラミングの他の問題
単方向連結リストの各ノードは val(整数)と next(参照、なければ NULL)をもつ。次の擬似言語は、値…単方向連結リストの各ノードは val と next(参照、末尾は NULL)をもつ。次の擬似言語は、リスト a…単方向連結リストの各ノードは val と next(参照、末尾は NULL)をもつ。次の擬似言語は、low を 1…単方向連結リストと比べた双方向連結リストの利点として最も適切なものはどれか。単方向連結リストの各ノードはメンバ val(整数)と next(次ノードへの参照。なければ NULL)をもつ。先頭ノード…単方向連結リスト head→[10]→[20]→[30]→NULL がある。各ノードは val と next…空の 2 分探索木に対し、次の擬似言語の挿入規則に従って 400, 200, 600, 100, 300, 500…次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=500、500 の左の子=300、500…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0109
