• 大小: 3.01KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: C/C++
  • 标签: c  

资源简介


lz算法实现:输入字符串,根据lz算法,输出三元组。代码可运行,算法实现具体,c语言实现。

资源截图

代码片段和文件信息

#include
#include “malloc.h“
#include “string.h“
#define NUM 30

 typedef struct triple
{
int loc;
int len;
char nextch;
}TRIPLE;

typedef struct box
{
int loc;
char ch;
} BOX;

typedef struct box1
{
int loc;
int len;
int over;
} BOX1;
enum STAT_SELTCT
{
STAT_INIT
STAT_SELT
STAT_DONE
};
int n=0;
int number=0;
   //三元组的个数
 void  match(BOX *pchar *strBOX1 *plint *tmpint ilen)
{


int num;
num=number-1;
int location=0;;
int loc;
int len=0;
int length=0;
    int spos=0;
enum STAT_SELTCT stat;
int over=0;
int flag=0; //第一次遇到匹配的地方

stat=STAT_INIT;

    while(num>=0)
{
switch(stat)
{
case  STAT_INIT:
if(p[num].ch==str[*tmp] )
{

if (flag == 0)
{
spos = number - num;

flag = 1;
}
    over=1;
       stat=STAT_SELT;

}
         else
{
         num--;
}

break;
    case  STAT_SELT:
loc=number-num;
while(p[num].ch==str[*tmp] && num {
             len++;
 num++;
(*tmp)++;


}


评论

共有 条评论