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语言哈夫曼编码压缩解压相关推荐

  1. C语言哈夫曼树压缩/解压器

    C语言哈夫曼树压缩/解压器 小编是大一的菜鸡,这个题目是数据结构的一个实验题,为了完成这个作业,查找了各种资料,借鉴了很多人的代码,前后折腾了三天左右.代码可能跟网上的不一样,大佬路过请不要踩我. 温 ...

  2. C语言霍夫曼编码压缩,数据结构大作业——哈夫曼编码压缩BMP格式文件

    数据结构大作业--哈夫曼编码压缩BMP格式文件 首先需要了解BMP图像格式 BMP图像格式详解 其次需要了解哈夫曼编码如何对BMP文件进行压缩 哈夫曼压缩与解压缩 编程部分 使用的头文件 虽然这里用了 ...

  3. 数据结构之赫夫曼文件压缩解压

    一.文件压缩 具体要求:给你一个图片文件,要求对其进行无损压缩, 看看压缩效果如何. 思路:读取文件-> 得到赫夫曼编码表 -> 完成压缩 package com.ws.数据结构.树.赫夫 ...

  4. 文件处理小程序(包含哈夫曼文件压缩-解压等 C语言)

    文末有源代码 文件压缩.解压.加密(异或加密).解密功能等都实现了,但是处理后文件命名有点不合理,采用了加前缀的方法得到处理后的文件名,应该是改变后缀名. 应该这种更好:test.txt --- &g ...

  5. 数据结构图文解析之:哈夫曼树与哈夫曼编码详解及C++模板实现

    0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...

  6. 对文件进行哈夫曼编码压缩与译码的C++实现 以及压缩率计算 ——HIT杨朔

    哈夫曼编码压缩原理:由于每个字符在内存中都是以ASCII码进行存储,所以每个字符都占用了八个01位,利用哈夫曼树对每个字符进行01编码,根据字符在文章中出现的频率调整01串长度,出现频率高的字符在哈夫 ...

  7. 数据结构c语言哈夫曼编码译码系统,数据结构C语言哈夫曼编码译码

    <数据结构C语言哈夫曼编码译码>由会员分享,可在线阅读,更多相关<数据结构C语言哈夫曼编码译码(16页珍藏版)>请在人人文库网上搜索. 1.实训报告题 目: 哈夫曼树编码译码院 ...

  8. 哈夫曼编码压缩解压缩实现不同类型文件压缩比的测试

    压缩原理及步骤&&压缩比的计算 压缩原理及步骤 压缩的第一步: 将一个文件以各个字符出现的次数为权值建立哈夫曼树,这样每个字符可以用从树根到该字符所在到叶子节点的路径来表示.(左为0, ...

  9. 夫曼编码译码系统课程设计实验报告(含源代码c++_c语言),哈夫曼编码译码系统课程设计实验报告(含源代码C++_C语言)[1]...

    目 录 摘 要 ---------------------------..------ II Abstract ----------------------------..---... II 第一章 ...

最新文章

  1. Oracle中事务锁(锁住的表、锁住的会话)
  2. java小程序小游戏代码贪吃蛇,附高频面试题合集
  3. Number.isInteger()
  4. ldap 统一认证 java_LDAP统一认证
  5. 怎么查询IP段所对应的IP总数、网络地址、可用IP数量及范围、网关、子网掩码、广播地址呢?/29 服务器包含多少IP地址?
  6. Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud java.net.UnknownH
  7. 20155317 2016-2017-2 蓝墨云班课考题第2周
  8. 华为云服务器客户端,华为终端云服务带来全场景云体验让用户办公更便捷
  9. BeatMark X for mac(fcpx音乐卡点神器)
  10. getopts函数简介
  11. 一个有启发意义的故事
  12. blur事件与click事件冲突的解决办法
  13. 微型计算机原理及应用:基于Arm微处理器
  14. [图]实习月薪超过$7000 Glassdoor发布最新实习生工资报告
  15. 听故事的男同学,没了666
  16. Java学习-工具IDEA-黑马视频(第一天)
  17. 德国专家发布朝鲜操作系统红星的分析结果
  18. GNSS卫星信号发射时间构筑公式
  19. css 查看更多_如何查看是否有人蹭网?教你判断是否有人蹭网的方法
  20. Microsoft.Practices.Unity 通用类

热门文章

  1. 电脑服务器修改穿越火线不卡,windows10玩穿越火线画面不流畅怎么办
  2. C++:亲戚(relation)
  3. CSS——设置元素边框的bug,当boder-radius比border本身大的时候
  4. iterm配置alias
  5. Linux快速入门之 静态库和动态库 (07)
  6. 8代cpu装服务器系统,8代cpu不支持win7吗
  7. 李宏毅机器学习之RNN
  8. 一些java语言的精巧写法
  9. veu中时间转换----element-UI上Date-Picker时间控件
  10. 面朝大海,春暖花开,有wifi