アルゴリズムとプログラミング
基本情報技術者試験|次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。 根=A、A の左の子=B、A…
次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=A、A の左の子=B、A の右の子=C、B の左の子=D、C の左の子=E、C の右の子=F、E の左の子=G(D・F・G の子はすべて空、B の右の子は空、E の右の子は空)。
次の擬似言語は木の高さを、根から最も遠い葉までに含まれる節点の数として返す(空の木は 0)。この木の根 A に対して実行したとき、戻り値はどれか。
○整数型: height(ノード: n)
if (n が 空)
return 0
endif
整数型: hl ← height(n.左)
整数型: hr ← height(n.右)
if (hl > hr)
return hl + 1
else
return hr + 1
endifウ4節点
ア3段
イ7(全ノード数)
エ14
正解
ウ.4節点
height は左右の高さの大きい方に 1 を足して返す。最長経路 A→C→E→G は 4 節点で、これが最大となるため戻り値は 4 となり ウが正しい。
?選択肢ごとの解説
ウ ○height は左右の高さの大きい方に 1 を足して返す。最長経路 A→C→E→G は 4 節点で、これが最大となるため戻り値は 4 となり ウが正しい。
ア ×A→B→D の経路(3 節点)だけを見て 3 段とした、より深い右側 A→C→E→G を見落とした誤りである。
イ ×木全体の節点数 7 を高さと取り違えた、高さと総ノード数を混同した誤りである。
エ ×節点ラベルや無関係な数値に引きずられて 14 とした、定義から外れた過大評価である。
アルゴリズムとプログラミングの他の問題
次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=A、A の左の子=B、A…次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=500、500 の左の子=300、500…2 分探索木に 500, 250, 750, 100, 400, 600, 900…空の 2 分探索木に対して、50, 30, 70, 20, 60 の順に値を挿入した。次の擬似言語に従ってさらに値 65…空の 2 分探索木に対し、次の擬似言語の挿入規則に従って 400, 200, 600, 100, 300, 500…次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=500、500 の左の子=300、500…次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=500、500 の左の子=300、500…次の 2 分木がある。各ノードは値・左の子・右の子をもつ(子がなければ空)。
根=500、500 の左の子=300、500…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0117
