资源简介
哈夫曼编解码器
问题描述:使用哈夫曼编码,实现文本文件的编码和解码,具体要求如下: ① 文本文件 data.txt 中仅包含 ASCII 字符,总字符数不少于 1000。 ② 统计 data.txt 中各种字符的出现次数,并计算各自概率(出现次数/总字符数)。 ③ 以概率作为叶结点权值,构造哈夫曼树,并求出每个叶结点对应的哈夫曼编码。 ④ 对 data.txt 进行编码,结果存于 encode.txt。 ⑤ 对 encode.txt 进行解码,结果存于 decode.txt。 ⑥ 编写代码比较 data.txt 与 decode.txt 的文件内容是否一致。 涉及算法及知识:哈夫曼树、哈弗曼
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
typedef struct{
int weight;
int lchild rchild parent;
}HTNode *HuffmanTree;
typedef char** HuffmanCode;
struct letter{
char data;
int count;
char* code;
}let[300];
string decode;
//在HT[1...end]中选择2个根结点权值最小的树,s1、s2为这2棵树在HT数组中的下标
void Select(HuffmanTree HT int end int &s1 int &s2){
unsigned int min = UINT_MAX; // 安全起见,循环前将min设为很大的值
for (int i = 1; i <= end; i++){
if (HT[i].parent == 0 && (HT[i].weight s1 = i;
min = HT[i].weight;
}
}
min = UINT_MAX;
for ( i = 1; i <= end; i++){
if (HT[i].parent == 0 && (HT[i].weight < min) && i != s1){ // 结点i之前未被选择过,且不是s1(防止重复选择)
s2 = i;
min = HT[i].weight;
}
}
}
//编码
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2000 2018-01-09 14:48 哈夫曼课程设计\data.txt
文件 99328 2018-01-11 15:16 哈夫曼课程设计\Debug\vc60.idb
文件 126976 2018-01-10 16:58 哈夫曼课程设计\Debug\vc60.pdb
文件 569422 2018-01-11 15:16 哈夫曼课程设计\Debug\哈夫曼设计.exe
文件 817912 2018-01-11 15:16 哈夫曼课程设计\Debug\哈夫曼设计.ilk
文件 334855 2018-01-11 15:15 哈夫曼课程设计\Debug\哈夫曼设计.obj
文件 2253648 2018-01-09 14:05 哈夫曼课程设计\Debug\哈夫曼设计.pch
文件 1147904 2018-01-10 16:58 哈夫曼课程设计\Debug\哈夫曼设计.pdb
文件 2000 2018-01-11 15:16 哈夫曼课程设计\decode.txt
文件 13169 2018-01-11 15:16 哈夫曼课程设计\encode.txt
文件 5420 2018-01-10 16:58 哈夫曼课程设计\哈夫曼设计.cpp
文件 3451 2018-01-11 14:36 哈夫曼课程设计\哈夫曼设计.dsp
文件 528 2018-01-11 17:02 哈夫曼课程设计\哈夫曼设计.dsw
文件 41984 2018-01-11 17:02 哈夫曼课程设计\哈夫曼设计.ncb
文件 48640 2018-01-11 17:02 哈夫曼课程设计\哈夫曼设计.opt
文件 768 2018-01-11 15:16 哈夫曼课程设计\哈夫曼设计.plg
目录 0 2018-01-10 16:58 哈夫曼课程设计\Debug
目录 0 2018-01-11 17:02 哈夫曼课程设计
----------- --------- ---------- ----- ----
5468005 18
- 上一篇:数据结构课程设计城市链表
- 下一篇:pmp_章节习题
相关资源
- 北京科技大学计算机组成原理和数据
- 数据结构算法课堂手写笔记整理
- 数据结构1800题含答案
- 大话数据结构原书 + 源代码
- 《常用数据结构和算法》
- 马的遍历数据结构
- 数据结构 图书管理系统课程设计代码
- 数据结构教程第2版李春葆编的上机实
- LUT算法与数据结构--递归替换问题和兰
- 山东大学软件学院数据结构实验报告
- 数据结构 停车场管理 实验报告
- 数据结构图的遍历的图形演示课程设
- 数据结构课程设计舞伴问题
- 删除顺序表中的元素
- 专升本历年数据结构真题
- 数据结构(全集珍藏版)
- 数据结构试题文件,名校近年的考题
- 数据结构课程设计人口信息处理
- 数据结构课程设计学校超市选址问题
- 拓扑排序数据结构课程设计报告图形
- 数据结构设计性实验----表达式类型的
- 数据结构课程设计 活期储蓄帐目管理
- 多任务下的数据结构与算法配书光盘
- 数据结构——停车场管理系统
- 数据结构课程设计----集合的并、交和
- 数据结构课程设计_一元稀疏多项式计
- 数据结构-通讯录
- 数据结构(李春葆)(第二版)
- 四川大学计算机学院数据结构作业
- 全国交通咨询程序
评论
共有 条评论