lzss.c

来自「一个关于LZSS压缩算法的演示程序。用于文本数据的压缩模拟。」· C语言 代码 · 共 26 行

C
26
字号
//LZSS编码算法模拟;
#include <stdio.h>
#define N 64
main()
{
    int i,j,z,m,x,s;
	char a[N]; 
	printf("请输入字符序列:"); gets(a);
	i=0;
	printf("编码结果为:\n");
	while(i<N && a[i]!=0) 
	{
		j=0;z=0;
		while(i!=j)
		{
			x=i;m=0;
			while(a[x]==a[j])	{m++;x++;j++;}
			if(m>z)				{z=m;s=i-j+m;}
			if(x==i)				j++;
		}
		if(z<2)					{printf("\t\t%c\n",a[i]);	i++;}
		else					{printf("\t\t(%d,%d)\n",s,z);	i=i+z;}
	}
}

⌨️ 快捷键说明

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