SC情報処理安全確保支援士試験 午前Ⅰ

令和6年度春期 情報処理安全確保支援士 午前Ⅰ 問3

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

問題

各ノードがもつデータを出力する再帰処理 f(ノード n)を定義した。この処理を、 図の2分木の根 (最上位のノード) から始めたときの出力はどれか。

選択肢

  1. ア
    〔f(ノード n) の定義〕
  2. イ
    1.ノード nの右に子ノードrがあれば、 f(ノードr)を実行
  3. ウ
    2.ノード nの左に子ノード |があれば、 f(ノード Dを実行
  4. エ
    3.再帰処理f(ノードr)、 f(ノードを未実行の子ノード、 又は子ノードがなければ、 ノード自身がもつデータを出力
解き方のヒントを見る

午前I 問03:木のたどり方は“指定された順番”を守ろう

この問題は、各ノードで「右の子を先に見る → 左の子を見る → 最後に自分を書く」というルールで木をたどるんだよ。道案内で「まず右の部屋、次に左の部屋、最後に今いる部屋の名前を書く」と決められているイメージだね。右側の `-` の部分木は `ED-`、左側の `×` の部分木は `CB×` になって、そのあとに `÷`、`A`、`+` が続くよ。

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

ポイントは、よくある中順・前順・後順の名前に引っ張られず、問題文で指定された「右部分木 → 左部分木 → 自ノード」の順番をそのまま守ってたどれるかだよ。

Tree Traversal Order

traverse right subtree first、 then left subtree、 then node itself

right postorder of ÷ -> ED-CB×÷\nthen A\nthen +

確認ポイント

  • 右から先に辿る。
  • 子を処理し終えてから自身を出力する。
  • 最終列は `ED-CB×÷A+` になる。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。アは最初に根の「+」を出してしまっているけど、この処理では親は最後に出力するんだ。料理でいうと、材料を全部切って炒め終わってから完成品を出すのに、最初に完成品を出しているような順番違いだよ。

選択肢イ

これは不正解だよ。イは左側のA、B、Cあたりを先に出しているけど、この問題のルールはまず右の子ノードから進むんだ。迷路で「まず右の通路を行け」と言われているのに、左の通路から歩き始めているようなものだよ。

選択肢ウ

これは不正解だよ。この処理は「右の子を先に全部見て、次に左の子を見て、最後に自分を出力する」順番なんだ。宅配で奥の部屋から順に荷物を回収して、最後に玄関の荷物を持つ感じだね。ウの並びは途中で親ノードを出すタイミングが合っていないよ。

選択肢エ(正解)

これは正解だよ。ルールどおりに、各ノードで「右の子を処理 → 左の子を処理 → 自分を出力」と進むと、出力は「ED-CB×÷A+」になるんだ。家系図を右の枝から奥までたどって、戻りながら名前をメモしていくイメージだよ。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度春期 情報処理安全確保支援士試験 午前Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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