【文件属性】:
文件名称:正确的哈夫曼树
文件大小:1KB
文件格式:CPP
更新时间:2016-01-12 10:55:05
哈夫曼树
#include
#include "HuffmanTree.h"
#include "HuffmanCoder.h"
using namespace std;
int main()
{
int n;
cout << "---此程序实现建立哈夫曼树并求哈夫曼编码---" << endl << endl;
cout << "请输入树叶结点的个数(小于等于1结束):" << endl;
cin>>n;
char chA[256];
int weightA[256];
int a,b;
LinkList *L=new LinkList[2*n-1];
for(int i= 0 ; i < n; i++){
cout << "请输入第" << i+1 << "个字符及权值" << endl;
cin >> chA[i] >> weightA[i];
}
HuffmanTree ht(n,chA,weightA); //建立哈夫曼树
ht.Display(); //显示所建哈夫曼树
HuffmanCoder hc(n);
hc.l_r(ht,a,b);
hc.CreateBook(ht,a,b,L); //建立哈夫曼编码表
hc._CreateBook(ht,L);
cout << "请输入需编码字符串(字符串中的字符须是当前对象中的字符): " << endl;
cin >> chA;
cout << "编码结果: " << endl;
hc.Coder(chA); //对所输入的字符串进行编码,编码的结果同时放入数据文件f1中
cout << endl;
hc.Decoder(ht); //对数据文件f1中的编码进行译码
cout << endl;
system("pause");
return 0;
}