資料結構與演算法簡單了解(串)

2021-10-09 11:47:49 字數 1345 閱讀 7639

bf匹配模式(蠻力匹配)思路

**

#include

intbf

(char

*s,char

*t);

//返回字串在主串中能匹配的第乙個位置

intbf

(char

*s,char

*t)else}if

(t[j]==0

)return i-j;

else

return-1

;}intmain()

kmp匹配模式思路

next陣列

求解next陣列

t='abcabx'

next[j]=011123

j=1 ; next[j]=0;

j=2 ; j由1到j-1只有字元a,next[2]=1;

j=3 ; j由1到j-1只有字元ab,next[3]=1;

j=4 ; j由1到j-1只有字元abc,next[4]=1;

j=5 ; j由1到j-1字串為abca,next[5]=2;

j=6 ; j由1到j-1字串為abcab,next[6]=3;

串:a ab abc abca abcab

如果前字尾乙個字元相等,next陣列值是2,兩個字元是3,n個字元是n+1

回溯的長度=next陣列的值-1

next匹配例項

**

#include

void

get_next

(char

*str2,

int*next)

else}}

intkmp

(char

*str1,

char

*str2)

else}if

(str2[j]==0

)return i-j;

else

return-1

;}intmain()

kmp匹配模式優化思路

**

#include

void

get_next

(char

*str2,

int*next)

else}}

intkmp

(char

*str1,

char

*str2)

else}if

(str2[j]==0

)return i-j;

else

return-1

;}intmain()

源**位址

資料結構與演算法(串)

引言 在上次佇列學習後,現在我們再學習串。主要包含kmp演算法,現在就開始資料結構與演算法的 串的學習。定義 串是由零個或者多個字元組成的有限序列,又叫字串。串的大部分操作我們曾經都實現過,這裡重點介紹kmp演算法。樸素模式匹配演算法是我們最容易思考到的一種普通演算法,其時間複雜度可以認為是o n ...

資料結構與演算法 串(基礎)

上上週學習了串的部分知識,今天得空將其中的一些點整理下來。資料結構中,字串要單獨用一種儲存結構來儲存,稱為串儲存結構。這裡的串指的就是字串。嚴格意義上講,串儲存結構也是一種線性儲存結構,因為字串中的字元之間也具有 一對一 的邏輯關係。只不過,與之前所學的線性儲存結構不同,串結構只用於儲存字元型別的資...

資料結構與演算法 4 串

字串簡稱串,是一種特殊的線性表,它的資料元素僅由乙個字元組成。串 string 是由零個或多個字元組成的有限序列 s a 1a 2 cdots a n 因為串是資料元素型別為字元型的線性表,所以用於線性表的儲存方式仍適合與串。但是由於串中的資料元素是單個位元組,其儲存方式又有其特殊之處。類似於線性表...