LHA Library for Java

jp.gr.java_conf.dangan.util.lha
クラス DynamicHuffman

java.lang.Object
  拡張jp.gr.java_conf.dangan.util.lha.DynamicHuffman
すべての実装インタフェース:
Cloneable

public class DynamicHuffman
extends Object
implements Cloneable

動的ハフマンを扱うクラス。

 -- revision history --
 $Log: DynamicHuffman.java,v $
 Revision 1.0  2002/07/24 00:00:00  dangan
 add to version control
 [bug fix]
     addLeaf() で葉の数が 1 から 2へと増加するときに
     最初からあった葉の重さが 1 だと決め付けていた。
 [change]
     コンストラクタ DynamicHuffman( int, int ) で
     開始時のハフマン木のサイズでなく 開始時の葉の数を渡すように変更。
 [maintenance]
     ソース整備
     タブ廃止
     ライセンス文の変更

 

バージョン:
$Revision: 1.0 $
作成者:
$Author: dangan $

フィールドの概要
static int ROOT
          ハフマン木のルートを示す。
 
コンストラクタの概要
DynamicHuffman(int count)
          コンストラクタ
DynamicHuffman(int max, int first)
          コンストラクタ
 
メソッドの概要
 void addLeaf(int code)
          ハフマン木に code を示す葉を追加する。
 int childNode(int node)
          ノードが葉でないノードなら子ノードのノード番号、 ノードが葉ならノードの持つデータを全ビット反転したものを得る。
 Object clone()
          このオブジェクトの現在の状態を持つコピーを作成して返す。
 int codeToNode(int code)
          データからノード番号を得る。
 int parentNode(int node)
          node の親ノードのノード番号を得る。
 void update(int code)
          code の重みが増すようにハフマン木を更新する。
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ROOT

public static final int ROOT
ハフマン木のルートを示す。

関連項目:
定数フィールド値
コンストラクタの詳細

DynamicHuffman

public DynamicHuffman(int count)
コンストラクタ

パラメータ:
count - 葉の数

DynamicHuffman

public DynamicHuffman(int max,
                      int first)
コンストラクタ

パラメータ:
max - 葉の最大数
メソッドの詳細

clone

public Object clone()
このオブジェクトの現在の状態を持つコピーを作成して返す。

戻り値:
このオブジェクトの現在の状態を持つコピー

codeToNode

public int codeToNode(int code)
データからノード番号を得る。

パラメータ:
code - データ
戻り値:
codeのノード番号

childNode

public int childNode(int node)
ノードが葉でないノードなら子ノードのノード番号、 ノードが葉ならノードの持つデータを全ビット反転したものを得る。 子ノードのノード番号は兄弟特性と利用するため、
node の 0 の子ノードの場合 childNode( node )
node の 1 の子ノードの場合 childNode( node ) - 1
となる。

パラメータ:
node - ノード
戻り値:
node の子ノードのノード番号

parentNode

public int parentNode(int node)
node の親ノードのノード番号を得る。

パラメータ:
node - ノード
戻り値:
node の親ノードのノード番号。

update

public void update(int code)
code の重みが増すようにハフマン木を更新する。

パラメータ:
code - 重みを増やす葉

addLeaf

public void addLeaf(int code)
ハフマン木に code を示す葉を追加する。

パラメータ:
code - 葉の示す符号
例外:
IllegalStateException - ハフマン木が十分に大きいため 葉が追加できない場合

LHA Library for Java

バグやドキュメントの誤りの報告は作者宛てにお願いします。
ドキュメント内に含まれる社名、製品名については一般に各社の商標または登録商標です。
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.