📄 haffman.cpp
字号:
// Haffman.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include"haffman.h"
using namespace std;
#define DN 26
#define SIZE 200
void main(){
char *sym="abcdefghijklmnopqrstuvwxyz";
char s[SIZE],a[20],c;
char *d=new char[5*SIZE];
ifstream in;
cout<<"编码源文件!!"<<endl;
in.open("huffman.txt");
in >> s;
ExtBinTree<char> h(DN,s,sym);
h.HuffmanTree();
int i=0;
cout<<"编码:\n";
while(s[i]!='\0'){
cout<<h.Coding(s[i]);
i++;
}
cout<<endl;
int n=i;
cout<<"各字符出现的频率及码字:\n";
int *f=h.GetFr();
for(i=0;i<DN;i++)
if(f[i]!=0)
{
cout<<sym[i]<<':'<<double(f[i])/n<<'\t'<<h.Coding(sym[i])<<endl;
}
i=0;
cout<<"译码:\n";
while(s[i]!='\0'){
if(i==0)d=strcpy(d,h.Coding(s[i]));
else d=strcat(d,h.Coding(s[i]));
i++;
}
h.DeCoding(d);
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -