KMP算法的代码实现一
来源:互联网 发布:软件编程自学网站 编辑:程序博客网 时间:2024/04/24 11:09
//kmp.h
#ifndef KMP_H#define KMP_H#include <iostream>using namespace std;const int Maxsize=50;class Char{public:Char(char a[],int longth);void print();void printnext();void GetNext(char T[]);private:char T[Maxsize];int next[Maxsize];int longth;};void Char::print(){cout<<"字符串为:"<<endl;for(int i=0;i<longth;i++)cout<<T[i];cout<<endl;}Char::Char(char a[],int longth){this->longth=longth;for(int i=0;i<longth;i++)T[i]=a[i];T[longth]='\0';}void Char::GetNext(char T[]){int k=0,i=-1;this->next[0]=-1;while(k<longth-1){if(i==-1||T[i]==T[k]){++i;++k; next[k]=i;}elsei=next[i];}next[longth]='\0';}void Char::printnext(){cout<<"next[j]为:"<<endl;for(int i=0;i<longth;i++)cout<<"next["<<i<<"]="<<next[i]<<endl;}#endif
//next.cpp
#include "kmp.h"void main(){int longth=0;cout<<"请输入长度(最长为50):";cin>>longth;while(longth>Maxsize){cout<<"请重新输入:";cin>>longth;}char*a=new char[longth]; //一开始忘了申请长度为longth的空间cout<<"请输入字符串:\n"<<endl;for(int i=0;i<longth;i++){cout<<"第"<<i+1<<"个字符为:";cin>>a[i];}Char c(a,longth);c.print();c.GetNext(a);c.printnext();delete []a;}
注:
void Char::GetNext(char T[])KMP算法,我是参照了《大话数据结构》这本书。
0 0
- KMP算法的代码实现一
- KMP算法-代码实现
- KMP算法代码实现
- KMP算法实现代码
- KMP算法代码实现
- KMP算法的C语言代码实现
- kmp算法的c代码实现
- KMP算法的C++实现代码
- KMP算法的C语言代码实现
- KMP算法的理解,伪代码,c代码实现
- KMP算法C代码实现
- KMP算法C代码实现
- KMP算法以及代码实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- synchronized的4种用法
- 全面解析css定位属性position(主要是relative以及absolute)
- Linux 下编译hello world 的C 语言程序
- 《技术骨干到项目经理的成功转型》- 大型免费讲座
- 如何使用C来扩展python功能。
- KMP算法的代码实现一
- Spring MVC 中使用ajax发送POST请求时的参数问题
- IOS获取系统通讯录使用权限的优雅方式
- iOS带有勾选框的提示框(封装代码)
- Android Launcher分析和修改4——初始化加载数据
- C# Activex开发、打包、签名、发布(转)
- Path Sum (leetcode)
- IOS7 8中tableview分割线缺少15像素
- Android内存使用——垃圾回收LOG,GC_CONCURRENT等的意义的说明(有用)