HOME»基本情報技術者試験掲示板»平成31年春期午後問8
投稿する
平成31年春期午後問8 [6390]
Afghjさん(No.1)
https://www.fe-siken.com/kakomon/31_haru/pm08.html
平成31年春午後問8のHトレースについて質問です。
Haffman()の引数の一つであるfreqには何が入っているのか根拠も併せて教えていただきたいです。
問題文中の"プログラム1の説明(1)"にて
freq=[-1,-1,-1,...]
と初期化されているとあるのですが、
プログラム中での初期値は例えば
freq=[10,2,4,3,-1,-1,...]
とならないとダメだと感じています。
どこかで更新しているんですか。
よろしくお願いいたします。
平成31年春午後問8のHトレースについて質問です。
Haffman()の引数の一つであるfreqには何が入っているのか根拠も併せて教えていただきたいです。
問題文中の"プログラム1の説明(1)"にて
freq=[-1,-1,-1,...]
と初期化されているとあるのですが、
プログラム中での初期値は例えば
freq=[10,2,4,3,-1,-1,...]
とならないとダメだと感じています。
どこかで更新しているんですか。
よろしくお願いいたします。
2026.04.22 15:14
basyouさん(No.2)
お考えの通りです。Afghj様は問題文を見落としています。
(3)に Huffman() の引数条件が書いてありますが、 freq の条件は
⑤ 初期化された後, 「文字の出現回数が要素番号0から順に格納された配列」 freq
です。 -1で埋められた配列ではなく、葉の値が入っているということですね。
freq[size] ← freq[i] + freq[j]
からわかる通り、freq[]は葉の値を使って節の値を埋めていく処理なので、Afghj様の書いた初期配列のように葉の値は最初から入っているのが前提という考えでよろしいです。
(3)に Huffman() の引数条件が書いてありますが、 freq の条件は
⑤ 初期化された後, 「文字の出現回数が要素番号0から順に格納された配列」 freq
です。 -1で埋められた配列ではなく、葉の値が入っているということですね。
freq[size] ← freq[i] + freq[j]
からわかる通り、freq[]は葉の値を使って節の値を埋めていく処理なので、Afghj様の書いた初期配列のように葉の値は最初から入っているのが前提という考えでよろしいです。
2026.04.23 20:54
badさん(No.3)
そうなんですね!ご回答ありがとうございます
2026.04.23 20:59
Afghjさん(No.4)
すみません、引数の説明を完全に見落としていました。
ありがとうございます。
ありがとうございます。
2026.04.24 08:50
