资源简介
采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比。
要求:
(1)描述压缩基本符号的选择方法。
(2)运行时的压缩原文件的规模不小于5K。
(3)提供恢复文件与原文件的相同性对比功能。
代码片段和文件信息
#include
#include
#include
using namespace std;
const int leaf = 256; //最多可能出现的不同字符数
const long MAX = 99999999; //表示无穷大
struct HTnode{ //huffman树的结点结构体
long weight; //记录结点的权值
int parent; //记录结点的双亲结点位置
int lchild; //结点的左孩子
int rchild; //结点的右孩子
int *code; //记录该结点的huffman编码
int codelen; //记录该结点huffman编码的长度
//初始化结点,令其权值为无穷大,无双亲及左右孩子
HTnode(){
weight = MAX;
parent = -1;
lchild = -1;
rchild = -1;
codelen = 0;
}
};
class huffman{ //huffman树类
private:
int root; //记录根结点的位置
int leafnum; //记录不同字符的个数
HTnode HT[leaf*2-1]; //HTnode结构的数组,用来表示huffman树,树的最大结点个数不会超过leaf*2-1
char byte; //压缩文件时用来缓冲bit的变量
int bitsnum; //byte中bit的个数
int lacknum; //压缩到最后byte中的bit不满8个时填充的0的
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9638 2009-06-29 16:00 huffman.cpp
----------- --------- ---------- ----- ----
9638 1
- 上一篇:NOIP 字符串复习
- 下一篇:游戏设计参考文档-游戏策划专用
相关资源
- c++和delphi 实现 屏幕传输/远程桌面/远
- 实验2 用链表实现学生健康情况管理系
- 马的遍历数据结构
- 通信原理实验,模拟信号调制实验,
- 网段计算器 计算输入的IP地址所在网
- 信息检索-索引的建立作业
- 程序按钮图标
- SHA512源码
- 山东大学软件学院数据结构实验报告
- 编译原理——词法分析代码
- 哈夫曼编码-译码器课程设计报告.do
- Qt写的UDP组播服务端
- 基于qt编写的图片浏览器
- 教室占座系统
- 一些有用的函数
- 物流货仓管理系统
- VC启用禁用网卡 支持win7等64位系统
- CT图像生成STL文件的程序
- 哈夫曼树实现文件解压缩
- 基于Brep的扫成与欧拉操作源码
- QT画图工具的简单实现
- 操作系统实验 cpu调度算法
- 基于IFC格式的BIM文件结构库
- 全国交通咨询程序
- 霍夫曼编解码的C程序源代码
- 哈夫曼树课程设计+数据结构
- qt 读取文件绘制波形
- BasicExcel.zip
- qt 绘制热点图
- 512位sha加密算法实现
评论
共有 条评论