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

📄 lzw编码.cpp

📁 lzw,主要实现了压缩算法
💻 CPP
字号:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#define N 600


struct tabler
{char chara[50];
 int encode;
};
tabler table[N];
char input[50];
int output[50];
char string[50];
char character[50];
void init()
{char a[75];
 int b=48;
 char c='0';
 for(int i=0;i<75;i++)
 {a[i]=c;
 c++;}
 for(i=0;i<75;i++)
 {table[i].chara[0]=a[i];
  table[i].encode=b;
  b++;}
}

void main()
{init();
 char string1[50];
 int input_len,next=1,out_len=0;
 int num=75,num1=258;
 cout<<"input the string for lzw:";
 cin>>input;
 input_len=strlen(input);
 string[0]=input[0];
while(input_len>0)
 {character[0]=input[next];
  next++;
  strcpy(string1,string);
  strcat(string1,character);
  for(int i=0;i<num;i++)
  {if(strcmp(table[i].chara,string1)==0)
  {strcpy(string,string1);
  break;}}
  if(i==num){
	  for(int j=0;j<num;j++)
	  {if(strstr(table[j].chara,string))
	  { output[out_len]=table[j].encode;
         out_len++;
		 break;}}
       strcpy(table[num].chara,string1);
	   table[num].encode=num1;
	   num1++;
	   num++;
	   strcpy(string,character);
  }
  input_len--;}
for(int i=0;i<num;i++)
{if(strcmp(table[i].chara,string)==0)
{output[out_len]=table[i].encode;
break;}}
cout<<"output the encode:";
for( i=0;i<=out_len;i++)
cout<<output[i]<<" ";
cout<<"257"<<endl;
}

⌨️ 快捷键说明

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