問題
2 分木の各ノードがもつ記号を出力する再帰的なプログラム Proc(n) の定義は、次のとおりである。このプログラムを、図の 2 分木の根(最上位のノード)に適用したときの出力はどれか。 Proc(n) n に左の子があれば Proc の子を呼び出す。 n に右の子があれば Proc の子を呼び出す。 n の記号を出力して終了する。 }

選択肢
- 1+a*-bcd
- 2a+b-c*d
- 3abc-d*+
- 4b-c*d+a
正解
3. abc-d*+
詳しい解説を見る解説を閉じる
解説
このプログラムは「左の子→右の子→自分」の順で処理する後行順(帰りがけ順)の走査である。図の木(根+、左 a、右*、*の子は-と d、-の子は b と c)を後行順でたどると、a → b → c → - → d → * → + の順に出力され、後置記法(逆ポーランド記法)abc-d*+ となる。よって「ウ」が正しい。(出典: 平成26年度 春期 基本情報技術者試験 午前 問6)
一問一答
科目A 180問+科目B 60問