jp.gr.java_conf.dangan.util.lha
Class DynamicHuffman
- Cloneable
public class DynamicHuffman
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]
ソース整備
タブ廃止
ライセンス文の変更
static int | ROOT - ハフマン木のルートを示す。
|
void | addLeaf(int code) - ハフマン木に code を示す葉を追加する。
|
int | childNode(int node) - ノードが葉でないノードなら子ノードのノード番号、
ノードが葉ならノードの持つデータを全ビット反転したものを得る。
子ノードのノード番号は兄弟特性と利用するため、
node の 0 の子ノードの場合 childNode( node )
node の 1 の子ノードの場合 childNode( node ) - 1
となる。
|
Object | clone() - このオブジェクトの現在の状態を持つコピーを作成して返す。
|
int | codeToNode(int code) - データからノード番号を得る。
|
int | parentNode(int node) - node の親ノードのノード番号を得る。
|
void | update(int code) - code の重みが増すようにハフマン木を更新する。
|
ROOT
public static final int ROOT
ハフマン木のルートを示す。
DynamicHuffman
public DynamicHuffman(int count)
コンストラクタ
DynamicHuffman
public DynamicHuffman(int max,
int first)
コンストラクタ
addLeaf
public void addLeaf(int code)
ハフマン木に code を示す葉を追加する。
childNode
public int childNode(int node)
ノードが葉でないノードなら子ノードのノード番号、
ノードが葉ならノードの持つデータを全ビット反転したものを得る。
子ノードのノード番号は兄弟特性と利用するため、
node の 0 の子ノードの場合 childNode( node )
node の 1 の子ノードの場合 childNode( node ) - 1
となる。
clone
public Object clone()
このオブジェクトの現在の状態を持つコピーを作成して返す。
codeToNode
public int codeToNode(int code)
データからノード番号を得る。
parentNode
public int parentNode(int node)
node の親ノードのノード番号を得る。
update
public void update(int code)
code の重みが増すようにハフマン木を更新する。
When you found typographical errors or omissions, Please mail to cqw10305@nifty.com
The company name and product name which are used in this document, it is the trademark or registered trademark of each company generally.
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.