资源简介
数据压缩LZW编码c++程序,包括编码和解码,解码是边解码边恢复字典
售后服务QQ:857997674
有任何疑问或问题,请咨询QQ
代码片段和文件信息
#include
#include
#include
using namespace std;
string dic[30];
int n;
int find(string s)//字典中寻找返回序号
{
int temp=-1;
for(int i=0;i<30;i++)
{
if(dic[i]==s) temp=i+1;
}
return temp;
}
void init()//字典初始化
{
dic[0]=“a“;
dic[1]=“b“;
dic[2]=“c“;//字根为abc
for(int i=3;i<30;i++)//其余为空
{
dic[i]=““;
}
}
void code(string str)
{
init();//初始化
char temp[2];
temp[0]=str[0];//取第一个字符
temp[1]=‘\0‘;
string w=temp;
int i=1;
int j=3;//目前字典存储的最后一个位置
cout<<“\n 编码为:“;
for(;;)
{
char t[2];
t[0]=str[i];//取下一字符
t[1]=‘\0‘;
string k=t;
if(k==““) //为空,字符串结束
{
cout<<“ “< break;//退出for循环编码结束
}
if(find(w+k)>-1)
{
w=w+k;
i++;
}
else
{
cout<<“ “< string wk=w+k;
dic[j++]=wk;
w=k;
i++;
}
}
cout< for(i=0;i {
cout< }
cout<
- 上一篇:数据压缩 算术编码 c++ 程序
- 下一篇:C++ HTTP GET,POST的简单
评论
共有 条评论