关于 KMP求next数组的问题
为啥运行 不出来哪里出问题啦还请 朋友们 帮帮忙 看看帮忙指正一下谢谢啦#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char *ch;
int length;
}str;
void getnext(str T,int *next)
{
int j = 0, i = 1;
next = 1;
while(i<T.length)
{
if(j == 0 || T.ch == T.ch)
{
next = j+1;
i++;
j++;
}
else
j = next;
}
}
int main()
{
str s;
char z = "ababaaaba";
s.length = 9;
s.ch = (char *)malloc((s.length+1)*sizeof(char));
for(int j=0;j<10;j++)
s.ch=z;
//printf("%s \n",s.ch);
int next;
int i =1;
getnext(s,next);
free(s.ch);
for(i;i<=s.length;i++)
{
printf("%d ",next);
}
putchar('\n');
return 0;
} 在getnext函数中 i的值从1开始,那么下面给next赋值,就相当于从Next开始赋值,Next的值不被赋予,它的值将是混乱的 beijudezixuan 发表于 2018-11-5 20:22
在getnext函数中 i的值从1开始,那么下面给next赋值,就相当于从Next开始赋值,Next的值不被赋予,它 ...
谢谢 朋友不过问题 不是 在这 char z = "ababaaaba"; 写成 char z = " ababaaaba";就行了就样就 与 next 数组对齐
页:
[1]