|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 哈夫曼压缩程序程序。。
我的收件箱(0)
共有
1813
人关注过本帖
标题:
哈夫曼压缩程序程序。。
取消只看楼主
加入收藏
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
结帖率:
95.74%
楼主
收藏
已结贴
√
问题点数:100 回复次数:8
哈夫曼压缩程序程序。。
我的这个程序都在测试。。。没有写完。。没有编码和解码没有分开。。这样是我还没有把编码表写进文件。。
附件里面含有很多测试语句。。。。。。
如果你有时间就帮我解惑吧。。我找了还好久还是没有找出来有点郁闷。。。
貌似英文的时候问题出现的概率很少。貌似字符一多就会出现未知数据。。。
中文的时候有时候可以 有时候不可以。。。
纠结中,在不停的调错误。。。。
希望你帮我找找。。看我哪里有逻辑错误。。。
thank you!!!!!
myHuffTree.zip
(213.29 KB)
用心做一件事情就这么简单
2011-11-07 12:00
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
2
楼
收藏
得分:0
回复 2楼 绿茶盖儿
没必要看我的。。。我这里有源代码。网上的比较好的。。
但我发现他们有解码的时候,是查表。。扫描的方式。。觉得速度太慢了。。
所以我自己写的不同。。现在还在排除错误。。。
做数据结构那样的哈夫曼的树 还是很好建。。
但要真正用于实际
许多细节要注意。。。
现在我就在一些细节没有注意到 出了问题。。
排除了几个错误了,不过花了我一个下午了。。。
唉。。。。。。。。。。。。。。。。。。。。。
你要源代码 我这里有。。。蛮好的 注释写的比较多
用心做一件事情就这么简单
2011-11-07 17:16
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
3
楼
收藏
得分:0
回复 4楼 Sv少
如果单纯的做那个数据结构的题目。还是很简单的。。。
直接有内存里面的树,然后有一个数组保存哈夫曼编码。逐步的比较进行解码就OK了。。。。
如果要想做成压缩包一样类似的程序,就要运用到文件的知识。。什么进制转换。什么文件读取,写入 。。。注意的东西就多了。。。。。
但思路蛮简单的。。。。。
自己调试了8个小时
。。
想死了。。。。。。。。。。。。。。。
用心做一件事情就这么简单
2011-11-08 10:02
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
4
楼
收藏
得分:0
回复 6楼 枯叶蝴蝶
这个吗!!我也才学习树没有好久啊。
反正只要指针学明白。。。这些都比较好写啊。。。。
改了几个错误了。。。
貌似发现读英文100%可以了。。
但读中文,出现了问题。。
经过我调试我发现哈夫曼码值都有问题。。。
看来还需要排查里面的东西。。。
你说 要是树都错的,那么英文可以,为什么中文就错的。。
看来真的是蛋疼啊
用心做一件事情就这么简单
2011-11-08 12:38
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
5
楼
收藏
得分:0
回复 9楼 beyondyf
程序的思路已经把握了。源代码我也有。。。
如果按照源代码的思维去写还是很简单。。
自己觉得他写的不是太好。。自己改了一些东西。。一些处理。。
结果是 出现BUG 了。。、
在调试中。。。嘿嘿。。。。
用心做一件事情就这么简单
2011-11-09 14:25
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
6
楼
收藏
得分:0
回复 11楼 jcw08120110
嘿嘿,果断地重新写这个程序,把每个地方都重新验证是否正确。。。竟然发现我自己的编码都好像有错误了。。。
不在调了。。
思路:根据长度的位来表示字符,从而进行压缩。。。
1:根据待压缩的文件内容先构建哈弗曼树。
2:然后把每个字符的编码求出来。。
3:然后进行核心的地方 把待压缩的文件内容转换为8位的一个字符 进行压缩。然后写入文件。
4: 然后还要写入一些别的信息到文件中。。。
5.解码就是反方向了。。。。
思路还是蛮简单。。。
主要是文件的处理的细节有点问题。。
比如:
文本 abcdf
fgetc 和fread();有点区别。。。
unsigend char c;
while(!feof())
{
c=fgetc("文件指针");
putchar(c);
}
和下面
while(!feof())
{
fread(&c,1,1,文件指针);
putchar(c);
}
上面能够正常读出abcdf来但会读一个回车还是什么的特殊符号。。。
下面会读出absdff 多出一个字符来。。
这样权值就会出现差别。。。
----------
用心做一件事情就这么简单
2011-11-09 20:32
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
7
楼
收藏
得分:0
回复 13楼 faminxmu
但我发现你的压缩后的文件比你原来的文件还要大。。
而且解压解不出来。。
取消的健没有用。。
用心做一件事情就这么简单
2011-11-10 19:12
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
8
楼
收藏
得分:0
我来把我到网上找的写的比较好的源代码共享出来。。。
看看他们的。。。。
一个是c++ 一个c的
利用哈夫曼编码实现文件压缩.zip
(25.5 KB)
用心做一件事情就这么简单
2011-11-10 19:14
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
9
楼
收藏
得分:0
分享数据结构书籍 感谢大家帮忙
。。。。。。
https://bbs.bccn.net/viewthread.php?tid=354886&extra=page%3D1&frombbs=1
后天要考程序员,我书才看。。原来要考那么多。。我勒个去。。有点压力啊。。。
用心做一件事情就这么简单
2011-11-10 19:56
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
哈夫曼压缩程序程序。。
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018268 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved