1.实验目的 通过“图片压缩编码”的编程实践,学习树、遍历二叉树、哈夫曼树、哈夫曼编码和他们的编程应用。 (1)掌握树的存储结构 (2)掌握二叉树的三种遍历方法 (3)掌握并理解Huffman树、Huffman编码等知识和应用 (4)掌握文件的操作 (5)使用Huffman算法实现图像压缩程序 2.实验内容 使用Huffman压缩算法,对一幅BMP格式的图片文件进行压缩。图片文件名为“Pic.bmp”,压缩后保存为“Pic.bmp.huf”文件。使用VS2010作为开发工具,开发一个控制台程序,使用Huffman压缩算法对图片文件“Pic.bmp”进行压缩。具体要求如下: (1)读取原文件,统计权值: 运行程序,输入文件名。 以“Pic.bmp”文件为例。若文件存放在F盘根目录下,输入文件完整路径“F:\Pic.bmp”。按回车结束。以字节流的方式,只读打“Pic.bmp”文件。 逐字节读取文件,统计文件中256种字节重复的次数,保存到一个数组中int weight[256]中。 (2)生成Huffman树 根据(1)中统计的结果,构建Huffman树。定义一个结构体来记录每个节点的权值、父节点、左孩子和右孩子。使用结构体数组来存储这个Huffman树。 (3)生成Huffman编码 遍历(2)中生成的Huffman树,记录256个叶子节点的Huffman编码,保存在字符串数组中。 (4)压缩原文件 使用Huffman编码对原文件中的字节重新编码,获得压缩后的文件数据。 (5)保存压缩文件 将编码过的数据,保存到文件“Pic.bmp.huf”中。
2021-06-03 13:02:12 48.54MB 数据结构与算法实验
平衡二叉树的判定.cpp
2021-06-03 09:04:11 614B swustoj
1
统计利用二叉树存储的森林中树的棵数.cpp
2021-06-03 09:04:10 487B swustoj
1
C语言用递归法将二叉树层序遍历,并求出最大宽度。文件类型是.cpp的,c的编译器都可以编译。
2021-05-31 10:12:56 3KB c语言二叉树
1
算法
2021-05-30 09:04:05 93KB
1
详细介绍了“二叉树与算术表达式的应用”数据结构课程设计流程;提供了c语言源代码;
2021-05-29 23:43:37 70KB 二叉树 算术表达式
1
KD树搜索近邻。输入点云为随机生成的,可以换成自己的点云数据。
2021-05-29 16:23:02 2KB kdtree kd树 二叉树 邻近搜索
1
功能:插入、查找、删除、清除整个树、返回最大值、返回最小值、前序遍历、中序遍历、后序遍历。 注:此二叉树允许插入相同的值
2021-05-29 13:03:10 8KB C++ 二叉树搜索树
1
设两棵二叉树的根结点地址分别为P及Q,采用二叉链表的形式存储这二棵树上所有的结点。请编写程序,判断它们是否相似。
2021-05-28 14:24:58 966B 算法 java
1
编写一个将二叉树中每个结点的左右孩子交换的算法。
2021-05-28 14:21:09 684B 算法 Java
1