• 大小: 1.05MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-09
  • 语言: C/C++
  • 标签: c++  

资源简介

这是多媒体技术教程里的LZW压缩算法,包含编码和解码过程。用C++ 语言进行了算法实现。

资源截图

代码片段和文件信息

#include 
#include 
#include 
using namespace std;
/* run this program using the console pauser or add your own getch system(“pause“) or input loop */
void LzwEncoding(int a[]int n);
int main(int argc char** argv) {//对编码字符进行解码 
int n;
map LzwMap;  //定义键值对存放 
cout<<“输入codes的个数“< cin>>n;
int a[n];
for(int i=0;i cout<<“第“< cin>>a[i];
}
LzwMap[1]=“A“LzwMap[2]=“B“LzwMap[3]=“C“;//初始化词典分别对A/B/C进行1/2/3编码
string s=“NIL“;
int count=4;//新字符的编码 
int k;
string str;
for(int i=0;i k=a[i];
map::iterator iter;
bool flag=false;
string value;
for(iter=LzwMap.begin();iter!=LzwMap.end();iter++){//搜素字典中键为k的值 
if (iter->first==k){
flag=true;
value=iter->second;
break;
}
}
if(flag==true){//若存在字典中,则输出值 
cout< }
if(s!=“NIL“){//把S对应的字符和字典k中对应的字符串的第一个字符相加并存储在字典中 
const char *p=value.data();
str=s+p[0];
LzwMap[count++]=str;
}
s=value;
}
return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-03 15:11  lzw\
     目录           0  2018-03-10 20:30  lzw\LzwDecode\
     文件         906  2017-12-30 00:15  lzw\LzwDecode\LzwDecode.dev
     文件     2096804  2017-12-30 00:03  lzw\LzwDecode\LzwDecode.exe
     文件          94  2017-12-30 00:15  lzw\LzwDecode\LzwDecode.layout
     文件        1214  2017-12-30 00:15  lzw\LzwDecode\main.cpp
     文件      223056  2017-12-30 00:03  lzw\LzwDecode\main.o
     文件        1026  2017-12-30 00:03  lzw\LzwDecode\Makefile.win
     目录           0  2018-03-10 20:30  lzw\LzwEncode\
     文件         894  2017-12-29 23:16  lzw\LzwEncode\LZW.dev
     文件     2094402  2017-12-29 23:07  lzw\LzwEncode\LZW.exe
     文件          92  2017-12-30 00:17  lzw\LzwEncode\LZW.layout
     文件        1294  2017-12-29 23:16  lzw\LzwEncode\main.cpp
     文件      223304  2017-12-29 23:07  lzw\LzwEncode\main.o
     文件        1014  2017-12-29 23:07  lzw\LzwEncode\Makefile.win

评论

共有 条评论