串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法

串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法

ID:26628414

大?。?99.35 KB

頁數(shù):41頁

時間:2018-11-28

串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法_第1頁
串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法_第2頁
串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法_第3頁
串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法_第4頁
串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法_第5頁
資源描述:

《串類型的定義串的表示和實(shí)現(xiàn)串的模式匹配算法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、4.1串類型的定義4.2串的表示和實(shí)現(xiàn)4.3串的模式匹配算法第4章串重點(diǎn):(1)ADT串的設(shè)計、實(shí)現(xiàn)方法和基本操作;(2)串的簡單模式匹配算法,KMP算法。難點(diǎn):串的模式匹配算法中的KMP算法。本章重點(diǎn)難點(diǎn)4.1串類型的定義4.2串的表示和實(shí)現(xiàn)4.3串的模式匹配算法第4章串4.1串類型的定義串是由零個或多個字符組成的有限序列。記為:s=”a1a2…an”(n≥0)其中,s是串的名,用雙引號括起來的字符序列是串的值。(1)串的長度:串中字符的數(shù)目n。(2)空串(Nullstring):長度為零的串。

2、(3)子串:串中任意個連續(xù)的字符組成的子序列。串的有關(guān)術(shù)語串(String)的定義4.1串類型的定義(4)主串包含子串的串相應(yīng)地稱為主串。(5)串相等只有當(dāng)兩個串的長度相等,并且各個對應(yīng)位置的字符都相等,稱兩串相等。(6)空格串(空白串)(blankstring)由一個或多個空格組成的串。要和“空串”區(qū)別,空格串有長度就是空格的個數(shù)。串的有關(guān)術(shù)語4.1串類型的定義(1)串?dāng)?shù)據(jù)對象約束為字符集。(2)基本操作的對象不同,線性表以“單個元素”為操作對象;串以“串的整體”為操作對象,操作的一般都是子串。

3、串與一般線性表的區(qū)別ADTString{數(shù)據(jù)對象:數(shù)據(jù)關(guān)系:基本操作:}ADTString串的ADT定義見下頁D={ai

4、ai∈CharacterSet,i=1,2,...,n,n≥0}R1={

5、ai-1,ai∈D,i=2,...,n}4.1串類型的定義基本操作:StrAssign(&T,chars)//根據(jù)串常量chars生成串TStrCopy(&T,S)//把串S中內(nèi)容拷貝到T串DestroyString(&S)//銷毀串SStrEmpty(S)//判斷串是否空StrComp

6、are(S,T)//比較串S和TStrLength(S)//求串長Concat(&T,S1,S2)//連接串4.1串類型的定義基本操作:SubString(&Sub,S,pos,len)//求子串Index(S,T,pos)//子串定位ClearString(&S)//清空串SStrDelete(&S,pos,len)//刪除子串Replace(&S,T,V)//把串S中符合T的子串替換StrInsert(&S,pos,T)//插入子串4.1串類型的定義4.2串的表示和實(shí)現(xiàn)4.2.1、定長順序存儲

7、表示4.2.2、堆分配存儲表示4.2.3、串的塊鏈存儲表示4.2.1定長順序存儲表示#defineMAXSTRLEN255//用戶可在255以內(nèi)定義最大串長typedefunsignedcharSstring[MAXSTRLEN+1];//0號單元存放串的長度SstringS;串的順序存儲C語言實(shí)現(xiàn)StatusConcat(SStringS1,SStringS2,SString&T){//用T返回由S1和S2聯(lián)接而成的新串。若未截斷,則返回TRUE,否則FALSE?!?returnunc

8、ut;}//ConcatT[1...S1[0]]=S1[1...S1[0]];T[S1[0]+1…S1[0]+S2[0]]=S2[1…S2[0]];T[0]=S1[0]+S2[0];uncut=TRUE;}if(S1[0]+S2[0]<=MAXSTRLEN){//未截斷4.2.1定長順序存儲表示串的連接算法StatusConcat(SStringS1,SStringS2,SString&T){//用T返回由S1和S2聯(lián)接而成的新串。若未截斷,則返回TRUE,否則FALSE?!?retur

9、nuncut;}//Concatelseif(S1[0]

10、.returnuncut;}//Concatelse{//截斷(僅取S1)T[0..MAXSTRLEN]=S1[0..MAXSTRLEN];//T[0]==S1[0]==MAXSTRLENuncut=FALSE;}4.2.1定長順序存儲表示串的連接算法StatusStrDelete(SSstring&S,intpos,intlen){if(pos<1

11、

12、pos>S[0]

13、

14、len<=0)returnerror;if(pos+len-1>=S[0])S[0]=pos-1;else{f

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。