1. 程式人生 > >大話數據結構5之串

大話數據結構5之串

匹配 unicode kmp 編碼 存儲結構 可用 結點 序號 存儲空間

1.串(string)是由零個或多個字符組成的有限序列,又名字符串。零個字符的串稱為空串(null string),長度為0,可用兩雙引號““””表示。

2.串的比較:是通過組成串的字符之間的編碼來進行的,而字符的編碼指的是字符在對應字符集中的序號。ASCLL碼由8位二進制數表示一個字符,Unicode 16位表示一個字符。

3.串的順序存儲結構:對於串的順序存儲,有一些變化,串值的存儲空間可在程序執行過程中動態分配而得。

4.串的鏈式存儲結構,一個結點可以存放一個字符,也可以存放多個字符,最後一個節點若是未被占滿是,可以用#或其他非串值字符補全。

  串的鏈式存儲結構除了在連接串與串操作時有一定方便之外,總的來說不如順序存儲結構靈活,性能也不如順序存儲結構好。

5.樸素的模式匹配算法(低效)O((n-m+1)*m)

  字串的定位操作通常稱作串的模式匹配。

  對主串的每個字符作為子串的開頭,與要匹配的字符串進行匹配。

6.KMP模式匹配算法:可以大大避免重復遍歷大情況O(n+m)

  

  

大話數據結構5之串