定長順序串的kmp演算法

2021-07-25 07:44:41 字數 1101 閱讀 8932

#include

#include

using namespace std;

#define maxstrlen 200

#define true 1

#define false 0

#define  ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef unsigned char sstring[maxstrlen + 1];

int strassig(sstring &t, char chars)//賦值操作 

return ok;

}void get_next(sstring t, int next)

else j = next[j];}}

int index_kmp(sstring s, sstring t, int pos, int next)

else j = next[j];

}if (j>t[0])

return i - t[0];

else return 0;

}void shuchu(sstring s)

int main()

;char chars2[7] = ;

strassig(s, chars1);

cout << "將chars1的值賦予s:";

shuchu(s);

cout << "將chars2的值賦予t:";

strassig(t, chars2);

shuchu(t);

get_next(t, next);

cin >> m;

if (index_kmp(s, t, m, next) == 0)

cout << "在字串s的第" << m << "個字元之後,沒有與子串t相照應的子串" << endl;

else

cout << "在字串s中,與子串t照應的子串位於第" << m << "個字元之後的第" << index_kmp(s, t, m, next) - m <<"個位置"return 0;

}

定長順序串 C語言

題目 用定長順序串編寫下列演算法 1.將順序串r中所有值為ch1的字元轉換成ch2的字元。2.將順序串r中所有字元按照相反次序仍存放在r中。3.從順序串r中刪除其值等於ch的所有字元。4.從順序串r1中第index個字元起求首次與串r2相同的子串的起始位置。5.從順序串r中刪除所有與串r1相同的子串...

串的定長順序儲存表示

串的定長順序儲存表示 define maxstrlen 40 使用者可在255以內定義最大串長 1個位元組 typedef char sstring maxstrlen 1 0號單元存放串的長度 串採用定長順序儲存結構的基本操作 14個 sstring是陣列,故不需引用型別。此基本操作包括演算法4....

定長順序串的基本操作

定長順序串採用的是陣列方法進行儲存,空間分配一次完成,可以實行如下的基本操作 include include using namespace std define maxstrlen 200 define true 1 define false 0 define ok 1 define error ...