資料結構 串

2021-10-23 05:01:58 字數 958 閱讀 7412

串是特殊的線性表;她的所有元素都來自字符集且操作特殊。

串與線性表的區別與聯絡:

區別:串的操作是以整體為物件,而線性表是以個體為物件。

聯絡:包含於被包含的關係,畢竟串是特殊的線性表。

這裡來講一下串的模式匹配中的兩個演算法:

第乙個:bf演算法(窮舉,暴力)

顧名思義,就是子串和串挨個比較,如果有乙個不一樣,就從新開始在接著比較。 

int bf(string t,string p,int pos)else 

} if(j>=p.length())else

}

第二個,kmp演算法 :

在kmp演算法裡引進了乙個陣列next,來進行子串的回溯,而next是如何求取的呢;

next[j] = max

else

j = next[j];

}}這裡也是感謝乙個大佬的部落格,因為不太會加圖所以,用文本來敘述的話可能還是有些抽象,這裡附上乙個帶圖的解析qwq

可以點這裡哦qwq

整體kmp**

#include #include using namespace std;

void getnext(char t,int next)

int main()

; int sum = 0;

sum = index_kmp(s,t,0,next);

//cout << sum << endl;

/*get_next(t,next);

for(int i=0;i

cout << endl;

for(int i=1;i<=strlen(t);i++)*/

return 0;

}

資料結構 串

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。我們求整個字串的排列,可以看成兩步 首先求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。第...

資料結構 串

串名 串值 串長 空串 空格串。字串的比較 字串模式匹配演算法 1.簡單字串模式匹配演算法 最簡單實現是用字串p的字元依次與字串t中的字元進行比較。實現思想是,首先將子串p從第0個字元起與主串t的第pos個字元起依次比較對應字元,如全部對應相等,則表明已找到匹配,成功終止。否則將子串p從第0個子串起...

資料結構 串

串 又稱字串 是一種特殊的線性表,它的每個結點僅由乙個字元組成。在早期的程式語言中,串僅在輸入或輸出中以直接量的形式出現,並不參與運算。隨著計算機的發展,串在文字編輯 詞法掃瞄 符號處理以及定理證明等許多領域得到越來越廣泛的應用。在高階語言中開始引入了串變數的概念,如同整型 實型變數一樣,串變數也可...