ハフマン木の構成アルゴリズムをc言語で実装
Posted: 2013年1月16日(水) 16:21
以下のような課題が出たのですが全く手がつけられない状態で困っています。
--------------------------------------------------------------------------------------------
符号化に利用されるハフマン木の構成アルゴリズムをC言語で実装してください。
情報源(情報記号の集合)
情報記号 今回はAからZまで26シンボルとします。
出現頻度は面倒なので、正の整数値(すなわち出現回数を数え上げたもの)
としてAからZそれぞれに与えてください。
この出現頻度はmainに直接書いても良いし、
ファイルや標準入力から読み込んでも、何でも結構です。
出現頻度をもとにハフマン木を作成する関数を実装してください。
デバッグのために情報記号(たとえばBとか)を入力すると
対応する符号語(011...1とか)を表示する関数を
作成するとよいかもしれません。
--------------------------------------------------------------------------------------------
ネットで関連するサイトを調べてハフマン木がどのようにして構成されるかという仕組みは理解できたのですが、私のc言語の勉強不足で(特にポインタや構造体について)プログラムがかけません。
このままでは提出期限に間に合いそうにないのでこちらで質問させていただきました。どなたかプログラムを書いて説明していただけるとありがたいです。。。
よろしくお願いします。
--------------------------------------------------------------------------------------------
符号化に利用されるハフマン木の構成アルゴリズムをC言語で実装してください。
情報源(情報記号の集合)
情報記号 今回はAからZまで26シンボルとします。
出現頻度は面倒なので、正の整数値(すなわち出現回数を数え上げたもの)
としてAからZそれぞれに与えてください。
この出現頻度はmainに直接書いても良いし、
ファイルや標準入力から読み込んでも、何でも結構です。
出現頻度をもとにハフマン木を作成する関数を実装してください。
デバッグのために情報記号(たとえばBとか)を入力すると
対応する符号語(011...1とか)を表示する関数を
作成するとよいかもしれません。
--------------------------------------------------------------------------------------------
ネットで関連するサイトを調べてハフマン木がどのようにして構成されるかという仕組みは理解できたのですが、私のc言語の勉強不足で(特にポインタや構造体について)プログラムがかけません。
このままでは提出期限に間に合いそうにないのでこちらで質問させていただきました。どなたかプログラムを書いて説明していただけるとありがたいです。。。
よろしくお願いします。