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

📄 lzw_bianma.cpp

📁 LZW算法 LZW算法
💻 CPP
字号:
#include<iostream>
#include<string>
#include<map>
using namespace std;
string c,codestream[4097];
map<string,string> pos;
string bb[4097]={"#0","#1","#2","#3","#4","#5","#6","#7","#8","#9","#10","#11","#12","#13","#14",
        "#15","#16","#17","#18","#19","#20","#21","#22","#23","#24","#25","#26","#27","#28","#29","#30","#31"};
string b[4097]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t",
        "u","v","w","x","y","z","A","B","C","D","E","F"};
void strtab()
{
        int  i,j;        
        for(i=0;i<=3;i++)
           pos[b[i]]=bb[i];   
}
string int2str( int num)
  {
    if (num == 0 )
       return " 0 " ;          
    string str = "" ;
    while (num)
     {
       str = ( char )(num % 10 + 48 ) + str;
       num /= 10 ;
    } 
    return str;
} 
int main()
{
        strtab();
        string data;
        string ck,c,temp;
        int j=4,i=0;
        cin>>data;
       // cout<<data;
        basic_string<char>::iterator ie;
        ie=data.begin();
        ck+=*ie;
        while(ie!=(data.end()+1))
        {
              
               
               if(pos[ck]!="")
               {    c=ck;
                   // cout<<pos[c]<<"!!"<<endl;
               }
               else 
                {  
                        
                  string s=int2str(j);
                 // cout<<"c="<<s<<endl;
                  j++;
                  pos[ck]="#"+s;
                  cout<<"ck1="<<ck<<endl;
                  cout<<"ck="<<pos[ck]<<endl;
                  codestream[i++]=pos[c];
                 // cout<<"C="<<pos[c]<<endl;
                  c=ck.erase(0,c.size());
                }
                ie++;
                ck.erase();
                ck=c+*ie;
                
        }     
        //cout<<"afs"<<pos["aba"];
        for(j=0;j<i;j++)
              cout<<codestream[j];   
              cout<<endl;     
          system("pause");
          return 0;   
    
    
    
}

⌨️ 快捷键说明

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