⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lzss.h

📁 一个对LZSS压缩算法的深入应用的例子
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////////////////////
// LZSS 压缩程序
// 程序编写:胡颖卓
// 编写时间:1999年12月
////////////////////////////////////////////////////////////////////////////////////////////////
class LZSS
{
 enum LZSSDATA
 {
  inMEM=1,inFILE
 };
 unsigned char *buffer;
 int mpos,mlen;
 int *lson,*rson,*dad;

 unsigned char InType,OutType;                          //输入输出数据类型,指明是文件还是内存中的数据
 unsigned char *InData,*OutData;                        //输入输出数据指针
 FILE *fpIn,*fpOut;                                     //输入输出文件指针
 unsigned long InDataSize;                              //输入数据长度
 unsigned long InSize,OutSize;                          //已输入输出数据长度
 int GetByte();                                         //获取一个字节的数据
 void PutByte(unsigned char);                           //写入一个字节的数据

 void InitTree();					//初始化串表
 void InsertNode(int);					//插入一个表项
 void DeleteNode(int);					//删除一个表项
 void Encode();                                         //压缩数据
 void Decode();                                         //解压数据
public:
 LZSS();                                                //本类构造函数
 ~LZSS();                                               //本类析构函数
 unsigned long Compress(unsigned char *,unsigned long,
                        unsigned char *);               //内存中的数据压缩
 unsigned long Compress(unsigned char *,unsigned long,
                        FILE *);                        //将内存中的数据压缩后写入文件
 unsigned long Compress(FILE *,unsigned long,FILE *);   //压缩文件
 unsigned long UnCompress(unsigned char *,unsigned long,
                          unsigned char *);             //内存中的数据解压
 unsigned long UnCompress(FILE *,unsigned long,
                          unsigned char *);             //将文件中的数据解压后写入内存
 unsigned long UnCompress(FILE *,unsigned long,FILE *); //解压文件
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -