欢迎来到天天文库
浏览记录
ID:37798598
大小:68.35 KB
页数:16页
时间:2019-05-31
《lzw压缩算法的c语言实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1程序由五个模块组成。(1)lzw.h定义了一些基本的数据结构,常量,还有变量的初始化等。#ifndef__LZW_H__#define__LZW_H__//------------------------------------------------------------------------------#include#include#include#include//------------------------------------------
2、------------------------------------#defineLZW_BASE0x102//Thecodebase#defineCODE_LEN12//Maxcodelength#defineTABLE_LEN4099//Itmustbeprimenumberandbiggerthan2^CODE_LEN=4096.//Suchas5051isalsook.#defineBUFFERSIZE1024//----------------------------------------------------------
3、--------------------typedefstruct{HANDLEh_sour;//Sourcefilehandle.HANDLEh_dest;//Destinationfilehandle.HANDLEh_suffix;//Suffixtablehandle.HANDLEh_prefix;//Prefixtablehandle.HANDLEh_code;//Codetablehandle.LPWORDlp_prefix;//Prefixtableheadpointer.LPBYTElp_suffix;//Suffixtabl
4、eheadpointer.LPWORDlp_code;//Codetableheadpointer.WORDcode;WORDprefix;BYTEsuffix;BYTEcur_code_len;//Currentcodelength.[usedinDynamic-Code-Lengthmode]}LZW_DATA,*PLZW_DATA;typedefstruct{WORDtop;WORDindex;LPBYTElp_buffer;HANDLEh_buffer;BYTEby_left;DWORDdw_buffer;BOOLend_flag;
5、}BUFFER_DATA,*PBUFFER_DATA;typedefstruct//Stackusedindecode{WORDindex;HANDLEh_stack;LPBYTElp_stack;}STACK_DATA,*PSTACK_DATA;//------------------------------------------------------------------------------VOIDstack_create(PSTACK_DATAstack){stack->h_stack=GlobalAlloc(GHND,TA
6、BLE_LEN*sizeof(BYTE));stack->lp_stack=GlobalLock(stack->h_stack);stack->index=0;}//------------------------------------------------------------------------------VOIDstack_destory(PSTACK_DATAstack){GlobalUnlock(stack->h_stack);GlobalFree(stack->h_stack);}//-----------------
7、-------------------------------------------------------------VOIDbuffer_create(PBUFFER_DATAbuffer){buffer->h_buffer=GlobalAlloc(GHND,BUFFERSIZE*sizeof(BYTE));buffer->lp_buffer=GlobalLock(buffer->h_buffer);buffer->top=0;buffer->index=0;buffer->by_left=0;buffer->dw_buffer=0;
8、buffer->end_flag=FALSE;}//---------------------------------------------------------------
此文档下载收益归作者所有