C++ 數(shù)據(jù)結(jié)構(gòu)之kmp算法中的求Next()函數(shù)的算法
更新時間:2017年06月25日 11:34:50 投稿:lqh
這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之kmp算法中的求Next()函數(shù)的算法的相關(guān)資料,需要的朋友可以參考下
C++ 數(shù)據(jù)結(jié)構(gòu)之kmp算法中的求Next()函數(shù)的算法
實例代碼:
#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; }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:
- C++數(shù)據(jù)結(jié)構(gòu)與算法之哈夫曼樹的實現(xiàn)方法
- C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法詳解
- C++數(shù)據(jù)結(jié)構(gòu)與算法之雙緩存隊列實現(xiàn)方法詳解
- C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法
- C++數(shù)據(jù)結(jié)構(gòu)與算法之判斷一個鏈表是否為回文結(jié)構(gòu)的方法
- C++ 冒泡排序數(shù)據(jù)結(jié)構(gòu)、算法及改進算法
- C++數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)知識和經(jīng)典算法匯總
相關(guān)文章
C++實現(xiàn)LeetCode(190.顛倒二進制位)
這篇文章主要介紹了C++實現(xiàn)LeetCode(190.顛倒二進制位),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08C++-操作符重載、并實現(xiàn)復(fù)數(shù)類詳解
這篇文章主要介紹了C++-操作符重載、并實現(xiàn)復(fù)數(shù)類,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03