C语言哈夫曼编码压缩解压
C语言哈夫曼编码压缩解压
一、实验目的
掌握哈夫曼编码基本运算以及存储结构表示。
二、实验内容:
1.系统要求包含以下功能
1)初始化:从终端读入字符集大小n,以及n个字符和n个权值(或者读入字符集和频度数据文件),建立哈夫曼树,并将哈夫曼树存入到文件HfmTree中。
2)编码:利用已建好的哈夫曼树(如果不在内存中,则从文件中读入),从文件ToBeTran中读入原文,对原文进行编码,将编码后的结果存入文件CodeFile中。
3)译码:利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
4)打印:打印输出哈夫曼树,显示ToBeTran, TextFile和CodeFile文件的内容。
三、实验要求:
1.能在机器上正确运行程序;
2.用户界面友好。
四、测试数据:
1.字符集和频度数据(建树依据)
字符 | 空格 | A | B | C | D | E | F | G | H |
---|---|---|---|---|---|---|---|---|---|
频度 | 186 | 64 | 13 | 22 | 32 | 103 | 21 | 15 | 47 |
字符 | I | J | K | L | M | N | O | P | Q |
频度 | 57 | 1 | 5 | 32 | 20 | 57 | 63 | 15 | 1 |
字符 | R | S | T | U | V | W | X | Y | Z |
频度 | 48 | 51 | 80 | 23 | 8 | 18 | 1 | 16 | 1 |
2.原文内容“THISISMYPROGRAM”
源码传送门
传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
C语言哈夫曼编码压缩解压相关推荐
- C语言哈夫曼树压缩/解压器
C语言哈夫曼树压缩/解压器 小编是大一的菜鸡,这个题目是数据结构的一个实验题,为了完成这个作业,查找了各种资料,借鉴了很多人的代码,前后折腾了三天左右.代码可能跟网上的不一样,大佬路过请不要踩我. 温 ...
- C语言霍夫曼编码压缩,数据结构大作业——哈夫曼编码压缩BMP格式文件
数据结构大作业--哈夫曼编码压缩BMP格式文件 首先需要了解BMP图像格式 BMP图像格式详解 其次需要了解哈夫曼编码如何对BMP文件进行压缩 哈夫曼压缩与解压缩 编程部分 使用的头文件 虽然这里用了 ...
- 数据结构之赫夫曼文件压缩解压
一.文件压缩 具体要求:给你一个图片文件,要求对其进行无损压缩, 看看压缩效果如何. 思路:读取文件-> 得到赫夫曼编码表 -> 完成压缩 package com.ws.数据结构.树.赫夫 ...
- 文件处理小程序(包含哈夫曼文件压缩-解压等 C语言)
文末有源代码 文件压缩.解压.加密(异或加密).解密功能等都实现了,但是处理后文件命名有点不合理,采用了加前缀的方法得到处理后的文件名,应该是改变后缀名. 应该这种更好:test.txt --- &g ...
- 数据结构图文解析之:哈夫曼树与哈夫曼编码详解及C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- 对文件进行哈夫曼编码压缩与译码的C++实现 以及压缩率计算 ——HIT杨朔
哈夫曼编码压缩原理:由于每个字符在内存中都是以ASCII码进行存储,所以每个字符都占用了八个01位,利用哈夫曼树对每个字符进行01编码,根据字符在文章中出现的频率调整01串长度,出现频率高的字符在哈夫 ...
- 数据结构c语言哈夫曼编码译码系统,数据结构C语言哈夫曼编码译码
<数据结构C语言哈夫曼编码译码>由会员分享,可在线阅读,更多相关<数据结构C语言哈夫曼编码译码(16页珍藏版)>请在人人文库网上搜索. 1.实训报告题 目: 哈夫曼树编码译码院 ...
- 哈夫曼编码压缩解压缩实现不同类型文件压缩比的测试
压缩原理及步骤&&压缩比的计算 压缩原理及步骤 压缩的第一步: 将一个文件以各个字符出现的次数为权值建立哈夫曼树,这样每个字符可以用从树根到该字符所在到叶子节点的路径来表示.(左为0, ...
- 夫曼编码译码系统课程设计实验报告(含源代码c++_c语言),哈夫曼编码译码系统课程设计实验报告(含源代码C++_C语言)[1]...
目 录 摘 要 ---------------------------..------ II Abstract ----------------------------..---... II 第一章 ...
最新文章
- Oracle中事务锁(锁住的表、锁住的会话)
- java小程序小游戏代码贪吃蛇,附高频面试题合集
- Number.isInteger()
- ldap 统一认证 java_LDAP统一认证
- 怎么查询IP段所对应的IP总数、网络地址、可用IP数量及范围、网关、子网掩码、广播地址呢?/29 服务器包含多少IP地址?
- Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud java.net.UnknownH
- 20155317 2016-2017-2 蓝墨云班课考题第2周
- 华为云服务器客户端,华为终端云服务带来全场景云体验让用户办公更便捷
- BeatMark X for mac(fcpx音乐卡点神器)
- getopts函数简介
- 一个有启发意义的故事
- blur事件与click事件冲突的解决办法
- 微型计算机原理及应用:基于Arm微处理器
- [图]实习月薪超过$7000 Glassdoor发布最新实习生工资报告
- 听故事的男同学,没了666
- Java学习-工具IDEA-黑马视频(第一天)
- 德国专家发布朝鲜操作系统红星的分析结果
- GNSS卫星信号发射时间构筑公式
- css 查看更多_如何查看是否有人蹭网?教你判断是否有人蹭网的方法
- Microsoft.Practices.Unity 通用类