資料結構(C語言版)學習筆記(第四章 串)

2021-10-09 22:47:03 字數 1341 閱讀 5767

串的模式匹配

子串在主串中的位置:子串的第乙個字元在主串中的位置

串相等:兩個串的長度相等對應位置的字元都相等

空格串與空串:

//初始化串並賦值(塊鏈儲存,尾插法)

void

setassign

(lstring *s,

char str)

s->curlen++

; i++;}

}

//實現串的複製

void

strcopy

(lstring *t, lstring s)

}}

//判空

bool strempty

(lstring s)

return false;

}

//串比較

intstrcompare

(lstring t, lstring s)

i++;if

(i ==4)

}return t.curlen-s.curlen;

//若字元相等,長的一方大

}

//求串長

intstrlength

(lstring s)

int len =0;

//用於記錄串長

len = chunksize*

(s.curlen-1)

;//尾結點前的元素數量直接計算得出

for(

int i =

0; ireturn len;

}

截斷:串的實際長度可以在預定義的範圍內(maxlen)隨意設定,超過預定義長度的串值會被捨去

可以採用動態分配的方式解決串值序列截斷的問題

定義:

#define maxlen 255  

//預定義最大長度為255

typedef

struct

sstring;

#define chunksize 4     

//定義結點塊的大小

typedef

struct chunk chunk;

typedef

struct

lstring;

缺點:主串指標會出現回溯現象導致時間開銷增加

時間複雜度:m與n分別代表主串與模式串的長度

資料結構筆記 第四章

模式匹配 bf演算法 從主串s的第0個字元開始和模式t 的第0個字元進行比較,若相等,則繼續比較兩者的後續字元 否則,從主串s的第1個字元開始和模式t 的第0個字元進行比較,重複上述過程,直到t 中的字元全部比較完畢,則說明本趟匹配成功 或s中字元全部比較完,則說明匹配失敗。模式匹配 kmp演算法 ...

資料結構 第四章

第四章 字串和多維陣列 4.1 字串 4.1.1 字串的定義 1.字串的定義 字串是零個或多個組成的有限序列,只包含空格的串成為空格串。串中所包含的字元個數成為串的長度,長度為0的串為空串,記作 乙個非空串通常該記作 s s1,s2 sn 字串中任意個連續的字元組成的子串行稱為該串的子串,相應地,包...

資料結構 第四章

第四章 字串和多維陣列 4.1 字串 4.1.1 字串的定義 1.字串的定義 字串是零個或多個組成的有限序列,只包含空格的串成為空格串。串中所包含的字元個數成為串的長度,長度為0的串為空串,記作 乙個非空串通常該記作 s s1,s2 sn 字串中任意個連續的字元組成的子串行稱為該串的子串,相應地,包...