技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 417|回复: 8
收起左侧

Huffman树

[复制链接]

12

主题

110

帖子

799

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
606 个
贡献
46 次
宅之契约
0 份
在线时间
109 小时
注册时间
2018-5-6
发表于 2018-5-24 12:00:29 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
小弟我看到这个板块的大佬们写的,额,好吧,我要发的这个帖子看起来更像是一个小白写的,但是报道一下吧还是。
给我自己加油。
菜鸟一枚,直接指正,不必留情

12

主题

110

帖子

799

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
606 个
贡献
46 次
宅之契约
0 份
在线时间
109 小时
注册时间
2018-5-6
 楼主| 发表于 2018-5-24 12:01:35 | 显示全部楼层
哎?压缩包去哪里了。

HuffmanTree.zip

665.22 KB, 下载次数: 3

菜鸟一枚,直接指正,不必留情

1010

主题

2246

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
200
威望
265 点
宅币
16897 个
贡献
33683 次
宅之契约
0 份
在线时间
1608 小时
注册时间
2014-1-26
发表于 2018-5-24 15:39:28 | 显示全部楼层
昂。
你不科普一下huffman树的原理和它的作用嘛?分享一下学习资料,或者,说一下心得。
难得见有人发干货的。

1010

主题

2246

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
200
威望
265 点
宅币
16897 个
贡献
33683 次
宅之契约
0 份
在线时间
1608 小时
注册时间
2014-1-26
发表于 2018-5-24 15:40:41 | 显示全部楼层
你把你的ReadMe贴出来呀,我看你的ReadMe就写得很好。
另外,中文的文件名真是666,虽说,这是不推荐的。考虑到跨平台的问题。

12

主题

110

帖子

799

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
606 个
贡献
46 次
宅之契约
0 份
在线时间
109 小时
注册时间
2018-5-6
 楼主| 发表于 2018-5-25 18:38:26 | 显示全部楼层
0xAA55 发表于 2018-5-24 15:39
昂。
你不科普一下huffman树的原理和它的作用嘛?分享一下学习资料,或者,说一下心得。
难得见有人发干货 ...

哦哦好的,感谢站长支持
菜鸟一枚,直接指正,不必留情

12

主题

110

帖子

799

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
606 个
贡献
46 次
宅之契约
0 份
在线时间
109 小时
注册时间
2018-5-6
 楼主| 发表于 2018-5-25 18:39:28 | 显示全部楼层
0xAA55 发表于 2018-5-24 15:40
你把你的ReadMe贴出来呀,我看你的ReadMe就写得很好。
另外,中文的文件名真是666,虽说,这是不推荐的。考 ...

小弟我第一次写这个类似工程的程序,文件名字和里面的变量名命是简陋了一些,不过我以后会学习的
菜鸟一枚,直接指正,不必留情

12

主题

110

帖子

799

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
606 个
贡献
46 次
宅之契约
0 份
在线时间
109 小时
注册时间
2018-5-6
 楼主| 发表于 2018-5-25 18:49:56 | 显示全部楼层
Huffman树是最优二叉树,它的带权路径长度是最短的,意思就是谁重要谁就会被拍到前面,相比于其他的叶节点要更加优先。
运用Huffman算法可以进行文件的压缩功能,还有就是平时搞算法的可能再贪心算法上会用到Huffman树的思想。

心得:小弟我是看的《数据结构C++语言描述》 任燕编著 清华大学出版社   谭浩强系列丛书之一,从这个上面看到的Huffman树的概念和操作,但是这个书后的程序是用顺序表存储树来写的,小弟我一直很反感用数组来写二叉树,因为我认为二叉树的形态和链表是很接近,用链式存储写更加自然。然后我就想,我已经知道的Huffman树的原理,我可以自己试着写一写这个程序,所以我每天有空闲时间写了这个程序,小弟我这个程序发到过qq空间,计算机专业的同学也是给了我很大的鼓励,我这个非计算机专业的小白也是感觉很高兴,我感觉这个贴子的技术含量还不够,所以不敢往棉花糖boss的那个Windows编程讨论群里发,我希望以后可以和0xAA55一起在论坛学习技术,最后感谢站长对我的鼓励和支持。
菜鸟一枚,直接指正,不必留情

12

主题

110

帖子

799

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
606 个
贡献
46 次
宅之契约
0 份
在线时间
109 小时
注册时间
2018-5-6
 楼主| 发表于 2018-5-25 18:56:01 | 显示全部楼层
ReadMe如下:
1.这个程序是小弟自己写的,没有Ctrl+V任何源码,要是有bug(实际上我已经知道了一个bug),欢迎给小弟指出,小弟也是初学者,还请大佬们多多指教。

2.这个程序只不过是一个理论模型的版本,因此实验的时候文本里的字符数量建议不要大于大约30个,要是想更多字符的文件转化为Huffman编码的文件,要进行更改一部分程序。

3.由于有一个bug,所以由Huffman编码转化为原来文本的时候,请忽略最后一个字符。

4.程序中的路径基本上都是我的桌面上的绝对路径,要是您进行实验的时候可以相应的进行更改

5.这个程序运行后还没有实现真正的压缩,待小弟过了考试月在好好研究一下位压缩,争取早日实现真正的Huffman压缩

6.这个程序是在VisualStudio2013Ultimate中的Debug版进行编译运行的,主程序是那个名字叫做“生成HuffmanTree.cpp”的文件。

7.还有最重要的一点,要进行Huffman编码的文件要英文,ascii码在0~128之间的字符
菜鸟一枚,直接指正,不必留情

1010

主题

2246

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
200
威望
265 点
宅币
16897 个
贡献
33683 次
宅之契约
0 份
在线时间
1608 小时
注册时间
2014-1-26
发表于 2018-5-26 14:48:12 | 显示全部楼层
溯影 发表于 2018-5-25 18:49
Huffman树是最优二叉树,它的带权路径长度是最短的,意思就是谁重要谁就会被拍到前面,相比于其他的叶节点 ...

你的帖子挺棒的,可以给很多学习算法的人提供实际的帮助,你的实例很有价值,谢谢你。

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-12-12 20:12 , Processed in 0.104994 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表