次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 手続orderは、図の2分木の、引数で指定した節を根とする部分木をたどりながら、全ての節番号を出力する。大域の配列treeが図の2分木を表している。配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である。例えば、配列treeの要素番号1の要素は、節番号1の子の節番号から成る配列であり、左の子の節番号2、右の子の節番号3を配列{2, 3}として格納する。 手続orderをorder(1)として呼び出すと、 の順に出力される。 〔プログラム〕 大域: 整数型配列の配列: tree ← {{2, 3}, {4, 5}, {6, 7}, {8, 9}, {10, 11}, {12, 13}, {14}, {}, {}, {}, {}, {}, {}, {}} // {}は要素数0の配列 ○order(整数型: n) if (tree[n]の要素数 が 2 と等しい) order(tree[n][1]) nを出力 order(tree[n][2]) elseif (tree[n]の要素数 が 1 と等しい) order(tree[n][1]) nを出力 else nを出力 endif
左→自分→右の順に出力するのは中間順走査

大域: 整数型配列の配列: tree ← {{2, 3}, {4, 5}, {6, 7}, {8, 9},
{10, 11}, {12, 13}, {14}, {}, {}, {},
{}, {}, {}, {}} // {}は要素数0の配列
○order(整数型: n)
if (tree[n]の要素数 が 2 と等しい)
order(tree[n][1])
nを出力
order(tree[n][2])
elseif (tree[n]の要素数 が 1 と等しい)
order(tree[n][1])
nを出力
else
nを出力
endif
選択肢
- ア1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
- イ1, 2, 4, 8, 9, 5, 10, 11, 3, 6, 12, 13, 7, 14
- ウ8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 13, 3, 14, 7
- エ8, 9, 4, 10, 11, 5, 2, 12, 13, 6, 14, 7, 3, 1
正解と解説
正解:ウ 8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 13, 3, 14, 7
この手続は、左の子をたどってから自分の節番号を出力し、その後で右の子をたどる順序、すなわち中間順(in-order)走査です。最も左下の葉である8から出発し、8、4、9、2……と進み、根の1はちょうど中間に現れます。節7は子が左の14だけなので、14を出力してから7を出力します。
選択肢ごとの解説
- ア節番号を単に昇順に並べただけで、走査結果ではない。
- イ自分を先に出力する先行順(pre-order)走査の並び。
- ウ正解。左部分木→自分→右部分木の中間順走査の並び。
- エ子を全て出力してから自分を出す後行順(post-order)走査の並び。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問4
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2025年度 公開問題 科目B 問3
- 図の木構造は2分探索木である。a〜gの値の大小関係として,適切なものはどれか。ここで,a〜gの値は重複しないものとする。2025年度 公開問題 科目A 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 図1に示すグラフの…2024年度 公開問題 科目B 問3
- 双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員Gを社員Aと社員Kの間に追加する。追加後の表…2023年度 公開問題 科目A 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。