实验5.1赫夫曼编译教程
界面
输入字符串并进行编码
进行译码
对附件统计字符频率并编码
字符{}`~^出现频率最少,编码为:
0011001011011,0011001011010,0011001100101,0011001100101和001100101100.
字符’空格’,’e’,’t’,’a’,’i’,’s’是出现频率最高,编码为:(好像出错了?)
编译后的文件大小为:909kb,比原文件小了一半多。
源代码:
#include stdafx.h
#ifndef HUFFMAMCODE_H
#define HUFFMAMCODE_H
#includeiostream
#includefstream
using namespace std;
struct HuffmanNode //定义哈夫曼树各结点
{
int weight;
int parent;
int lchild, rchild;
int flag;
};
class HuffmanCode1 //哈夫曼编码类
{
public:
char Info[100];
int Start;
char Leaf;
};
class HuffmanTree1 //建立哈夫曼树类
{
private:
HuffmanNode *Node;
public:
int f;
HuffmanCode1 *hf;
HuffmanTree1();
~HuffmanTree1();
void TranslatedCode();
void CodeHuf(HuffmanNode a[], HuffmanCode1 b[], int n);
void CreateHfmTree(char Str[], int m[], int n);
void TransCode(HuffmanCode1 b[], int n);
void TranslateArtcle(HuffmanCode1 b[], int n);
};
#endif //HUFFMAMCODE_HHuffmanCode.cpp
#include iostream
#includestdio.h
#include math.h
#include stdlib.h
#includestring
using namespace std;
#define MAXDATA 100000 //最长字符串
#define MAXSIZE 1500 //最多子叶数
///////////读取文件部分功能实现的代码$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
HuffmanTree1::HuffmanTree1()
{
Node = NULL;
} //将树结点初始化为
HuffmanTree1::~HuffmanTree1()
{
delete[] Node;
} //释放结点空间
void HuffmanTree1::CreateHfmTree(char Str[], int m[], int n)//建立哈夫曼树
{
int i, j, m1, m2, x1, x2;
HuffmanNode *HfmNode = new HuffmanNode[2 * n - 1];
HuffmanCode1 *HfmCode = new HuffmanCode1[n];
for (i = 0; i2 * n - 1; i++)
{
HfmNode[i].weight = 0;
HfmNode[i].parent = 0;
HfmNode[i].flag = 0;
HfmNode[i].lchild = -1;
HfmNode[i].rchild = -1;
}
for (i = 0; in; i++)
{
HfmNode[i].weight = m[i];
HfmCode[i].Leaf = Str[i];
}
for (i = 0; in - 1; i++)
{
m1 = m2 = 32767;
x1 = x2 = 0;
for (j = 0; jn + i; j++)
{
if (HfmNode[j].weight = m1HfmNode[j].flag == 0)
{
m2 = m1;
x2 = x1;
m1 = HfmNode[j].weight;
x1 = j;
}
else if (HfmNode[j].weight = m2HfmNode[j].flag == 0)
{
m2 = HfmNod
您可能关注的文档
最近下载
- 民法总论课件.ppt VIP
- 低空经济与低空旅游建设方案.pdf VIP
- 《DLT 2934—2025垃圾发电厂飞灰低温处理技术规范》专题研究报告.pptx VIP
- 大气TSP、PM10监测.ppt VIP
- 公用工程车间调试车总结110116.doc VIP
- 畜牧微生物学教学课件电子教案全套课件.pptx VIP
- 2025年移动图书馆第三届知识竞答挑战赛题库及答案(第五关).docx VIP
- 2026年党支部班子在对照加强理论武装、做好群众工作、执行上级组织决定、严格组织生活等“6个对照方面”检查材料2份稿.docx VIP
- 降低患者胃肠减压管非计划拔管率品管圈.pdf
- 业绩完成情况专项审计报告.docx VIP
原创力文档

文档评论(0)