数据结构:next数组和nextval数组求解

文章目录

  • 一、next数组求解
    • 1.求解步骤
    • 2.求解流程图
  • 二、nextval数组求解
    • 1.求解步骤
    • 2.求解流程图
  • 总结


一、next数组求解

1.求解步骤

  1. next数组第一,二位一定为0,1
  2. 从第三位开始,将该位的字符与前一位字符比较
  3. 如果相等,则该位字符的next数组值为前一位字符对应的next数组值加1
  4. 如果不等,则向前继续寻找字符与该位字符进行比较
  5. 找到与该位字符相等的字符,即该位字符的next数组值即为对应字符的next数组值
  6. 如果遍历到第一位字符仍然没有找到与该位字符相等的内容,则该位字符的next数组值为1

2.求解流程图

数据结构:next数组和nextval数组求解_第1张图片

二、nextval数组求解

1.求解步骤

  1. next数组第一位和nextval数组第一位相等,即next[1]=nextval[1]
  2. 从第二位开始求解nextval值,假设当前位为i,比较next[i]和nextval[next[i]]
  3. next[i]==nextval[next[i]],二者值相等,nextval[i]=nextval[next[i]]
  4. next[i]!=nextval[next[i]],二者值不相等,nextval[i]=next[i]

2.求解流程图

数据结构:next数组和nextval数组求解_第2张图片


总结

以上就是数据结构中求字符串的next数组和nextval数组的流程步骤,希望能对大家有所帮助

你可能感兴趣的:(算法之美,数据结构)