哈夫曼树实验文档
一.实验目的:
---------掌握二叉树的实际应用
二.实验的实现程序:
1.文件头的程序-----
struct HuNode{
int weight; //用来存入权值
int parent;
int left,right;};
2.哈夫曼树的类的实现程序:
class HuTree{
public:
struct HuNode *Node;
char *Info;
int LeafNum;
public:
HuTree();
char *Encoder(char ch);
void Decoder(char *Bit);
};
3.编码的程序:
char *HuTree::Encoder(char ch)
{
char *code ;
int i,j,start=0;
code=new char[LeafNum+1];
for(i=0;i<LeafNum;i++)
if(Info[i]==ch)
break;
j=i;
while(Node[j].parent!=-1){
j=Node[j].parent;
if(Info[Node[j].left]==Info[i])
code[start++]='0';
else
code[start++]='1';
i=j;}
code[start]='\0';
for(i=0;i<start/2;i++){
j=code[i];
code[i]=code[start-i-1];
code[start-i-1]=j;
}