LZW算法压缩c语言实现

最近研究了下LZW算法,也看了很多这个方面的资料。LZW适合于文本文件,对于稍稍大点的流文件则出现压缩出来的文件大于源文件的情况。LZW有很多著名的实现程序,下面的程序以动态增加位数为出发点,利用哈希表来实现LZW的压缩。 哈希算法有二个,一个被我注释掉,二个都可以用。具体哪个好,我自己也没有测试。

/**********************************************************************

***********************************************************************/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define hashsize       4096     
#define clear           256       /*清除标志位*/
#define teminate        257
#define not_used        -1
#define MAXVAL(n) (( 1 <<( n )) -1)
#define max_bits         12

FILE *in;
FILE *out;
int bitsize = 9;
int maxcode;


/*字典数据结构*/
typedef struct prex_cha{
 int value;             /*值*/
    unsigned int prefix;            /*字符串*/
 unsigned int character;         /*追加的字母*/
}Hash_Table;               

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值