watermelon 发表于 2018-5-24 12:00:29

Huffman树

小弟我看到这个板块的大佬们写的,额,好吧,我要发的这个帖子看起来更像是一个小白写的,但是报道一下吧还是。
给我自己加油。

watermelon 发表于 2018-5-24 12:01:35

哎?压缩包去哪里了。

0xAA55 发表于 2018-5-24 15:39:28

昂。
你不科普一下huffman树的原理和它的作用嘛?分享一下学习资料,或者,说一下心得。
难得见有人发干货的。

0xAA55 发表于 2018-5-24 15:40:41

你把你的ReadMe贴出来呀,我看你的ReadMe就写得很好。
另外,中文的文件名真是666,虽说,这是不推荐的。考虑到跨平台的问题。

watermelon 发表于 2018-5-25 18:38:26

0xAA55 发表于 2018-5-24 15:39
昂。
你不科普一下huffman树的原理和它的作用嘛?分享一下学习资料,或者,说一下心得。
难得见有人发干货 ...

哦哦好的,感谢站长支持

watermelon 发表于 2018-5-25 18:39:28

0xAA55 发表于 2018-5-24 15:40
你把你的ReadMe贴出来呀,我看你的ReadMe就写得很好。
另外,中文的文件名真是666,虽说,这是不推荐的。考 ...

小弟我第一次写这个类似工程的程序,文件名字和里面的变量名命是简陋了一些:$,不过我以后会学习的

watermelon 发表于 2018-5-25 18:49:56

Huffman树是最优二叉树,它的带权路径长度是最短的,意思就是谁重要谁就会被拍到前面,相比于其他的叶节点要更加优先。
运用Huffman算法可以进行文件的压缩功能,还有就是平时搞算法的可能再贪心算法上会用到Huffman树的思想。

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

watermelon 发表于 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之间的字符

0xAA55 发表于 2018-5-26 14:48:12

溯影 发表于 2018-5-25 18:49
Huffman树是最优二叉树,它的带权路径长度是最短的,意思就是谁重要谁就会被拍到前面,相比于其他的叶节点 ...

你的帖子挺棒的,可以给很多学习算法的人提供实际的帮助,你的实例很有价值,谢谢你。
页: [1]
查看完整版本: Huffman树