struct HTNode
{
char data; //
结点值
int weight; //
权值
;
int parent; //
父结点下标
int lchild; //
左孩子下标
int rchild; //
右孩子下标
};
|
a
|
5
|
9
|
-1
|
-1
|
b
|
29
|
14
|
-1
|
-1
|
c
|
7
|
10
|
-1
|
-1
|
d
|
8
|
10
|
-1
|
-1
|
e
|
14
|
12
|
-1
|
-1
|
f
|
23
|
13
|
-1
|
-1
|
g
|
3
|
3
|
-1
|
-1
|
h
|
11
|
11
|
-1
|
-1
|
|
8
|
11
|
1
|
7
|
|
15
|
12
|
3
|
4
|
|
19
|
13
|
8
|
9
|
|
29
|
14
|
5
|
10
|
|
42
|
15
|
6
|
11
|
|
58
|
15
|
2
|
12
|
|
100
|
0
|
13
|
14
|
a
|
0 1 1 0
|
b
|
1 0
|
c
|
1 1 1 0
|
d
|
1 1 1 1
|
e
|
1 1 0
|
f
|
0 0
|
g
|
0 1 1 1
|
h
|
0 1 0
|
a c d e f
超过8bit,断开 补上四位 这样就得到三个字符,分别是:
|
ASCII
为
168
的字符 ASCII为79 的字符
ASCII
为
16
的字符
|
结点数
|
补位数
|
压缩后的文件的哈夫曼编码总长度
|
文件类型(后缀名)
|
哈夫曼树(叶子结点值和权值部分)
|
压缩后文件的哈夫曼编码(压缩文件主要部分)
|