科学20182325人民元号ソース「オブジェクト指向プログラミングとデータ構造」ハフマン符号化の実践
(1)は、英語のファイルの26の文字が(など、または句読点を含めることはできません)が含まれ、各キャラクターの統計の確率を準備します
- 英語の文書は、予め用意しました
- 書込みストリーム・ファイル読み取り
- 表示される文字の数を格納するための配列を作成します。インクリメントに登場。代わりに確率の数を使用します。
(2)ハフマンを構成
- リストを確立
ノード=新しいArrayListを (); 26の文字データとして格納された文字の数を持ちます。
- ソート文字の数、配列、及び新たなノード配列の合成から取り外した2最も小さいです。
ルートノードと最後のノードの配列。
(3)英語の文書エンコードされたファイル、コーディングの出力
「1」コーディング右サブツリーに左側のサブツリーコーディングアドオン「0」に、ハフマン木をトラバース
成功はリーフノードを符号化します。
新しいファイルを作成し、「01」の文字フロー決意によって文字で、コードの後。
(4)復号化されたファイルを出力し、エンコードされたファイルを復号化します
- キューの方法は、各要素は、対応する配列が存在するか否か、決意に加えます。文字出力がある場合。
- 新しいファイルを作成します。