讀書筆記之《資料結構》 第四章 串

2021-08-28 20:44:15 字數 1501 閱讀 7581

本章目錄

串型別的定義

串的表示和實現

串的模式匹配演算法

串操作應用舉例

串型別的定義

串是由零個或多個字元組成的有限序列,一般記為s = 『a1a2a3…an』。

s是串名,單引號內是串的值,n是串的長度,零個字元的串稱為空串。

求字串t在字串s的位置的演算法index

演算法思想:在主串s中從第i個字元起,取長度和t相等的子串與t相比,若相等,則方位位置i,若不相等,則i增加1,直至s中不存在和串t相等的子串為止。

串的表示和實現

串連線演算法concat

演算法思想:串s1與串s2連線,生成串t,則串t的前一段和s1相等,後一段和s2相等

求子串演算法substring(&sub,s,pos,len)

演算法思想:從s串的pos位置開始,複製長度為len的子串到sub中

串的堆分配儲存表示:仍以一組位址連續的儲存單元存放串值字串行,但是儲存空間是在程式的執行過程中動態分配的。

串的塊鏈儲存表示:和線性表的鏈式儲存結構相類似,採用鍊錶方式儲存串值。

串的模式匹配演算法

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

改進的模式匹配演算法kpm演算法

演算法思想:在主串s中對串t進行模式匹配時,當第i位失配時,並不是將t向後滑動一位,而是滑動next[i]位,演算法關鍵是需要知道串t中每一位對應的next值。next值為t的每一位的最長前字尾匹配長度,當第i位失配後,就將t向後滑動 i - next[i]位。這樣可以保證移動後的t中next[i]前的子串與s串中的相應位置的子串值都相等。

next值得計算演算法

演算法思想:next中的值是t串中的每一位的最大前字尾匹配長度 + 1。

串操作應用舉例

第四章 讀書筆記

源 包含了許多的東西,包括 android 應用程式的 android sdk 自帶的工具,android ndk 的源 等等,所以單從數量上來講,android linux 終端執行命令來配置 android12 repo 指令碼檔案 3 建立用於存放 android 源 的目錄 4 初始化 5a...

資料結構 第四章 串

第一章 緒論 第二章 線性表 第三章 棧和佇列 第四章 串 第五章 陣列和廣義表 第六章 樹和二叉樹 第七章 圖 第八章 排序 第九章 查詢 4.2 串的儲存結構 4.2.2 鏈式儲存 4.3 模式匹配 4.4 例題 4.1.1 串的概念 串 string 是零個或多個字元組成的有限序列。一般記作s...

資料結構 第四章 串

1.串是由零到多個字元組成的字串行。2.串的模式匹配演算法 查詢子串 kmp演算法 關鍵是部分匹配值的計算 部分匹配 的實質是,有時候,字串頭部和尾部會有重複。1 熟練使用string.h中提供的串操作函式,理解串的表示和運算的實現。include include using namespace s...