HOME»基本情報技術者試験掲示板»トレース方法を教えてください
投稿する
トレース方法を教えてください [5131]
受験者さん(No.1)
令和5年下期パーフェクトラーニング過去問題集
P99 科目B 問9 解説のトレースがどうしてもできません。。
スタートのorder(1)の処理で、
oder(tree[1] [1]) が、なぜ2となりorder(2)に続くのでしょうか。
order(2)の処理でも、
order(tree[2] [1])が4として、order(4)に続いています。
カッコ内のtree[1] [1]は、配列tree{1,1}を指している?のかとも思いましたが、そのような部分木は無いはずですよね。。。
ご教示お願いいしたしますm(_ _)m
P99 科目B 問9 解説のトレースがどうしてもできません。。
スタートのorder(1)の処理で、
oder(tree[1] [1]) が、なぜ2となりorder(2)に続くのでしょうか。
order(2)の処理でも、
order(tree[2] [1])が4として、order(4)に続いています。
カッコ内のtree[1] [1]は、配列tree{1,1}を指している?のかとも思いましたが、そのような部分木は無いはずですよね。。。
ご教示お願いいしたしますm(_ _)m
2023.10.11 10:42
まきさん(No.2)
これ、再帰と二分木の知識が必要です
2023.10.11 12:10
電タックさん(No.3)
★FE ブロンズマイスター
https://www.fe-siken.com/kakomon/sample/b9.html
の類似と思いますのでサンプルで記載します。
2次元配列を見る時、なれていない場合カッコを縦に並べると見やすいです。
改行を入れるタイミングは”閉じたカッコ後のカンマ”になります。
上を閉じたカッコ後のカンマで改行するとこんな感じになります。
{{2, 3}, // ここが1行目
{4, 5},
{6, 7}, // ここが3行目
{8, 9},
{10, 11},
{12, 13},
{14},
{},
{},
{},
{},
{},
{},
{}}
この状態で
tree[行数][指定行の中の配列]
としてアクセスします。
例えば
は、
tree[1行目][(1行目の中身{2, 3})の1つ目] = 2
と解釈していきます。
仮にtree[3][2]だった場合
tree[3行目][(3行目の中身{6, 7})の2つ目] = 7
となります。
注意点として問題文にある。
「配列の要素番号は1から始まる。」となっている場合は1を1行目や1個目とします。
もしこの記載がない場合は0から始まる為、0を1行目や1個目と見ます。
の類似と思いますのでサンプルで記載します。
2次元配列を見る時、なれていない場合カッコを縦に並べると見やすいです。
改行を入れるタイミングは”閉じたカッコ後のカンマ”になります。
>大域: 整数型配列の配列: tree ← {{2, 3}, {4, 5}, {6, 7}, {8, 9}, {10, 11}, {12, 13}, {14}, {}, {}, {}, {}, {}, {}, {}} // {}は要素数0の配列
上を閉じたカッコ後のカンマで改行するとこんな感じになります。
{{2, 3}, // ここが1行目
{4, 5},
{6, 7}, // ここが3行目
{8, 9},
{10, 11},
{12, 13},
{14},
{},
{},
{},
{},
{},
{},
{}}
この状態で
tree[行数][指定行の中の配列]
としてアクセスします。
例えば
>tree[1] [1]
は、
tree[1行目][(1行目の中身{2, 3})の1つ目] = 2
と解釈していきます。
仮にtree[3][2]だった場合
tree[3行目][(3行目の中身{6, 7})の2つ目] = 7
となります。
注意点として問題文にある。
「配列の要素番号は1から始まる。」となっている場合は1を1行目や1個目とします。
もしこの記載がない場合は0から始まる為、0を1行目や1個目と見ます。
2023.10.11 12:47
受験者さん(No.4)
早々にありがとうございます!!
まさに同じサンプル問題でした。
2次元配列の見方を分かっていなかったことが分かりました。。おっしゃる通り、カッコを縦に並べると見やすいですね。
いただいた記載内容でようやく理解できました。
とても感謝ですm(_ _)m
まさに同じサンプル問題でした。
2次元配列の見方を分かっていなかったことが分かりました。。おっしゃる通り、カッコを縦に並べると見やすいですね。
いただいた記載内容でようやく理解できました。
とても感謝ですm(_ _)m
2023.10.11 14:08