数据结构 关于模式匹配
#include <stdio.h>
#include <malloc.h>
#define CHUNKSIZE 1
typedef struct Chunk
{
char ch[CHUNKSIZE];
struct Chunk *next;
}Chunk,*LinkList;
void CreateChunk_L(LinkList &L,int n)
{
LinkList p,q;
L=(LinkList)malloc(sizeof(Chunk));
q=L;
L->next=NULL;
for(int i=n;i>0;--i)
{
p=(LinkList)malloc(sizeof(Chunk));
scanf("%c",&p->ch);
q->next=p;
p->next=NULL;
q=p;
}
}
int Index(LinkList &L,LinkList &S,int pos)
{
LinkList p=L->next,q=S->next;
while(p&&q)
{
int i,j=0;
for(i=pos;i>0;--i)
p=p->next;
while(p&&q)
{
if(!(p->ch==q->ch))
{
if(p->next)
{
p=p->next;
++j;
}
else
{
return 0;
break;
}
}
else
{
if(q->next)
q=q->next;
else
{
return j;
break;
}
}
}
}
}
void main()
{
int t;
LinkList S,T;
CreateChunk_L(S,8);
CreateChunk_L(T,3);
t=Index(S,T,1);
printf("%d",t);
}
相关推荐
数据结构之模式匹配算法 (数据结构)
数据结构之模式匹配算法 对输入的数字等进行匹配
数据结构模式匹配算法
特记下: int get_nextval(SString T,int &nextval;[ ]){4 `2 B ?2 k: r+ Y5 g: q" x //求模式串T的next函数修正值并存入数组nextval。 i=1; nextval[1]=0; j=0;" U2 g: c2 i( o: D; l while(i<T[0]){ if(j==0||T==T[j]){ ++i;++j;* ~: u" d2 j; O0 J+ p# r/ f if (T!=T[j]) nextval=j; else nextval=nextval[j];5 g3 D% p ]; y' s& l- p% o3 B) _2 H } else j=nextval[j]; }# m# P+ ?3 a; l. N, P2 g& b }//get_nextval next数组值的求解方法。 求nextval数组值有两种方法,一种是不依赖next数组值直接用观察法求得,一种方法是根据next数组值进行推理,两种方法均可使用,视更喜欢哪种方法而定。4
C语言数据结构之模式匹配字符串定位问题
主要介绍了C语言数据结构之模式匹配字符串定位问题的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下
串的模式匹配 数据结构
串的模式匹配,适用于大学数据结构上机实验课 可编译通过~~~没有问题
C语言数据结构中串的模式匹配
主要介绍了C语言数据结构中串的模式匹配的相关资料,需要的朋友可以参考下


