C++ 数据结构之kmp算法中的求Next()函数的算法

 更新时间:2017年06月25日 11:34:50   投稿:lqh  
这篇文章主要介绍了C++ 数据结构之kmp算法中的求Next()函数的算法的相关资料,需要的朋友可以参考下

C++ 数据结构之kmp算法中的求Next()函数的算法

实例代码:


#include <iostream>
 
using namespace std;
 
void preKmp(char *c, int m, int Next[])
{
  int i=1,j=-1;
  Next[0]=-2;
  while(i<m)
  {
    if(j==-2)
     {
       Next[i]=-1;
       i++;
       j=-1;
     }
 
     ++j;
     if(i==m)
     return;
    if(c[i]==c[j])
     {
       Next[i]=j;
       ++i;
     }
    else if(j==0)
     {
       j=-2;
 
     }
    else j=Next[j-1];
  }
}
int main()
{
  cout << "Hello world!" << endl;
  char pat[12]="actabactace";
  int next[11];
  preKmp(pat,11,next);
  for(int i=0;i<11;i++)
    cout<<"next["<<i<<"]="<<next[i]<<endl;
  return 0;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • VC++6.0实现直线扫描转换的图文教程

    VC++6.0实现直线扫描转换的图文教程

    这篇文章主要给大家介绍了关于VC++6.0实现直线扫描转换的相关资料,文中通过图文将实现的步骤一步步介绍的非常详细,对大家学习或者使用VC++6.0具有一定的参考学习价值,需要的朋友可以参考下
    2023-01-01
  • VC多线程编程详解

    VC多线程编程详解

    这篇文章主要介绍了VC多线程编程,实例形式详细分析了多线程编程的原理与实现方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • c语言实现数组循环左移m位

    c语言实现数组循环左移m位

    这篇文章主要介绍了c语言实现数组循环左移m位,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • C++实现Linux下弹出U盘的方法

    C++实现Linux下弹出U盘的方法

    这篇文章主要介绍了C++实现Linux下弹出U盘的方法,实例分析了C++在Linux平台上进行IO操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C++ 实现对象池的具体方法

    C++ 实现对象池的具体方法

    本文主要介绍了C++ 实现对象池的具体方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 帮VS2019 找回丢失的 SDK问题

    帮VS2019 找回丢失的 SDK问题

    最近很多朋友向小编求助在机器上的 vs2019 编译 C++ 工程报错问题,今天小编给大家分享帮VS2019 找回丢失的 SDK问题,感兴趣的朋友一起看看吧
    2020-05-05
  • C语言中时间的基本用法小结

    C语言中时间的基本用法小结

    处理时间是编程中经常遇到的问题,C语言中提供了一些时间处理函数,在此记录下一些基本的用法。下面这篇文章主要给大家介绍了C语言中关于时间的基本用法的相关资料,需要的朋友可以参考借鉴,感兴趣的朋友们来一起看看吧。
    2017-01-01
  • C语言数据结构创建及遍历十字链表

    C语言数据结构创建及遍历十字链表

    这篇文章主要介绍了C语言数据结构十字链表的创建及遍历,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-10-10
  • ReSharper 的安装使用详细教程

    ReSharper 的安装使用详细教程

    resharper安装教程是关于vs2012一个非常好用的插件的安装教程,建议大家尝试安装,今天通过本教程帮助大家学习ReSharper 的安装使用详细教程,感兴趣的朋友一起看看吧
    2021-06-06
  • C语言数组栈实现模板

    C语言数组栈实现模板

    这篇文章主要为大家详细介绍了C语言数组栈实现模板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12

最新评论