NWネットワークスペシャリスト試験 午前Ⅰ

令和6年度春期 ネットワークスペシャリスト 午前Ⅰ 問3

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

各ノードがもつデータを出力する再帰処理 f(ノード n)を定義した。この処理を,図の 2 分木の根(最上位のノード)から始めたときの出力はどれか。 〔f(ノード n)の定義〕 1. ノード n の右に子ノード r があれば,f(ノード r)を実行 2. ノード n の左に子ノード l があれば,f(ノード l)を実行 3. 再帰処理 f(ノード r),f(ノード l)を未実行の子ノード,又は子ノードがなければ,ノード自身がもつデータを出力 4. 終了
演算子とA〜Eを格納した二分木。根が+、その右部分木が÷、×、-、左の葉がAである。
演算子とA〜Eを格納した二分木。根が+、その右部分木が÷、×、-、左の葉がAである。

選択肢

  1. ア
    +÷−ED×CBA
  2. イ
    ABC×DE−÷+
  3. ウ
    E−D÷C×B+A
  4. エ
    ED−CB×÷A+
解き方のヒントを見る

与えられた条件と前提を区別する

処理の順序を考えるときは、与えられた条件と、自分が無意識に補っている前提を区別することに注目しましょう。見慣れた進め方をそのまま当てはめず、判断の根拠がどこにあるかを確認すると、考えを整理しやすくなります。

この問題で問われていること

順序についての判断が、示された条件に基づいているかを確認するのが今回の着眼点です。途中で迷ったときも、新しい前提を足して進める前に、その前提を置く根拠が与えられているかを振り返りましょう。

視点

知っている処理の進め方が、今回もそのまま使えるとは限りません。考えの中に、与えられた条件にない決めつけが入っていないかを点検し、条件と推測を分けて整理しましょう。

確認ポイント

  • 判断の根拠を、与えられた条件に結び付けられるか
  • 慣れた進め方を、根拠なく前提にしていないか
  • 迷った部分を、条件と推測に分けて整理できるか
正解と解説を見る

正解

エ

解説

正解はエです。定義の順序に従って右の部分木、左の部分木を処理してから自身を出力します。根の右側から順にたどると、出力は「ED−CB×÷A+」になります。

理由

根の「+」では、まず右の「÷」を処理します。「÷」の右にある「−」では、右のE、左のD、自身の「−」の順に出力するので「ED−」になります。続いて「÷」の左にある「×」を処理し、右のC、左のB、自身の「×」の順に「CB×」を出力します。その後に「÷」を出力し、根へ戻って左のA、最後に「+」を出力します。全体の出力は「ED−CB×÷A+」です。

比較

アは根の「+」を最初に出力しており、自身を最後に出力する定義と一致しません。イは左側のAから始まっており、右側から処理する定義と一致しません。ウは「−」をEとDの間に出力していますが、このノード自身の出力は両方の子の処理後です。エは、各部分木で右・左・自身の順序を守っています。

選択肢ア

これは不正解だよ。「+÷−ED×CBA」は根の「+」から始まっています。しかし、定義では右の子への再帰処理、左の子への再帰処理を済ませてから、ノード自身のデータを出力します。根の「+」は全ての子孫の処理が終わった後に出力されるので、この並びは出力のタイミングと一致しません。

選択肢イ

これは不正解だよ。「ABC×DE−÷+」は根の左にあるAから始まっています。定義では根の右にある「÷」への再帰処理を先に実行するため、最初の出力はその先にあるEです。また、「×」の子も右のC、左のBの順に出力するので、「BC×」という並びは定義と一致しません。

選択肢ウ

これは不正解だよ。「E−D÷C×B+A」では、EとDの間に「−」が出力されています。しかし、「−」の処理では右のE、左のDを出力した後に自身を出力するので、この部分は「ED−」になります。末尾も、左の子Aを処理してから根の「+」を出力するため、「+A」とはなりません。

選択肢エ(正解)

これは正解だよ。「ED−CB×÷A+」は定義の右・左・自身という順序に一致します。「−」の部分木はE、D、−の順、「×」の部分木はC、B、×の順に出力します。両方を処理してから「÷」を出力し、根へ戻って左のAを出力した後、最後に根の「+」を出力します。

学習のポイント

再帰呼出しが終了すると呼出し元の処理へ戻ることと、右・左・自身の出力順序を確認しましょう。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度春期 ネットワークスペシャリスト試験 午前Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針