《數(shù)據(jù)結(jié)構(gòu)題集》參考答案4串

上傳人:xt****7 文檔編號(hào):91216607 上傳時(shí)間:2022-05-16 格式:DOC 頁(yè)數(shù):6 大?。?5.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
《數(shù)據(jù)結(jié)構(gòu)題集》參考答案4串_第1頁(yè)
第1頁(yè) / 共6頁(yè)
《數(shù)據(jù)結(jié)構(gòu)題集》參考答案4串_第2頁(yè)
第2頁(yè) / 共6頁(yè)
《數(shù)據(jù)結(jié)構(gòu)題集》參考答案4串_第3頁(yè)
第3頁(yè) / 共6頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《數(shù)據(jù)結(jié)構(gòu)題集》參考答案4串》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《《數(shù)據(jù)結(jié)構(gòu)題集》參考答案4串(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、③ 編寫(xiě)對(duì)串求逆的遞推算法。 要求實(shí)現(xiàn)以下函數(shù): void Reverse(StringType &s); /* Reverse s by iteration. */ StringType是串的一個(gè)抽象數(shù)據(jù)類(lèi)型,它包含以下6種基本操作: void InitStr(StringType &s); // 初始化s為空串。 void StrAssign(StringType &t, StringType s); // 將s的值賦給t。s的實(shí)際參數(shù)是串變量。 int StrCompare(StringType s, StringType t); // 比較s和

2、t。若s>t,返回值>0;若s=t,返回值=0;若s

3、長(zhǎng)度為len的子串,否則返回空串。 // 注意,不要使用 " s = " 的形式為 StringType 類(lèi)型的變量賦值 , // 而要使用 StrAssign 函數(shù)!!! void Reverse(StringType &s) /* Reverse s by iteration. */ { int i=0,j=StrLength(s)-1; char temp; while(i<=j) { temp=s[i]; s[i]=s[j]; s[j]=temp; i++;j--;

4、 } } ③ 編寫(xiě)算法,從串s中刪除所有和串t相同的子串。 要求實(shí)現(xiàn)以下函數(shù): void DelSubString(StringType &scrStr, StringType subStr); /* Remove all substring matching 'subStr' from 'scrStr'. */ StringType是串的一個(gè)抽象數(shù)據(jù)類(lèi)型,它包含以下6種基本操作: void InitStr(StringType &s); // 初始化s為空串。 void StrAssign(StringType &t, St

5、ringType s); // 將s的值賦給t。s的實(shí)際參數(shù)是串變量。 int StrCompare(StringType s, StringType t); // 比較s和t。若s>t,返回值>0;若s=t,返回值=0;若s

6、, int len); // 當(dāng)1<=start<=StrLength(s)且0<=len<=StrLength(s)- start+1時(shí), // 返回s中第start個(gè)字符起長(zhǎng)度為len的子串,否則返回空串。 // 注意,不要使用 " s = " 的形式為 StringType 類(lèi)型的變量賦值 , // 而要使用 StrAssign 函數(shù)!!! void DelSubString(StringType &scrStr, StringType subStr) /* Remove all substring matching 'subStr' from 'scrS

7、tr'. */ { StringType head,tail,S; int i; InitStr(head); InitStr(tail); for(i=1;i<=StrLength(scrStr)-StrLength(subStr)+1;i++) if(!StrCompare(SubString(scrStr,i,StrLength(subStr)),subStr)) { StrAssign(head,SubString(scrStr,1,i-1)); StrAssign(tail

8、,SubString(scrStr,i+StrLength(subStr),StrLength(scrStr)-i-StrLength(subStr)+1)); StrAssign(scrStr,Concat(head,tail)); i--; } } ③ 編寫(xiě)算法,實(shí)現(xiàn)串的基本操作Replace(&S,T,V)。 要求采用教科書(shū)節(jié)中所定義的定長(zhǎng)順序存儲(chǔ)表示, 但不允許調(diào)用串的基本操作。 要求實(shí)現(xiàn)以下函數(shù): Status Replace(SString& s, SString t, SString v)

9、; /* 用串v替換串s中所有和串t匹配的子串。 */ /* 若有與t匹配的子串被替換,則返回TRUE;*/ /* 否則返回FALSE */ 定長(zhǎng)順序串SString的類(lèi)型定義: typedef unsigned char SString[MAXSTRLEN+1]; /* s[0] is the string's length */ 注:這題在Status Replace(SString& s, SString t, SString v)函數(shù)前要寫(xiě)一個(gè)int Index(SString s, SString t,int

10、pos )的函數(shù)。如下: int Index(SString s, SString t,int pos ) { int i = pos; int j = 1; while( i<= s[0]&&j<=t[0]) { if( s[i] == t[j] ){ ++i; ++j; } else{i= i-j+2;j=1;} } if( j > t[0] ) return i - t[0]; else return 0; } Status Replace(SString& s,

11、SString t, SString v) /* 用串v替換串s中所有和串t匹配的子串。 */ /* 若有與t匹配的子串被替換,則返回TRUE;*/ /* 否則返回FALSE */ { int flag = 0; int i,j,w,r; SString s1; for( i = 0; i <= s[0]; i++ ) s1[i] = s[i]; for( i = 1, j = 1; i <= s1[0]; ) { w = Index( s1

12、, t, i); if( !w ) { while( i <= s1[0] ) s[j++] = s1[i++]; } else { while( i < w ) s[j++] = s1[i++]; for( r = 1; r <= v[0]; r++ ) s[j++] = v[r]; flag++

13、; i += t[0]; } } s[0] = --j; if( flag ) return TRUE; return FALSE; } ③ 編寫(xiě)算法,從串s中刪除所有和串t相同的子串。 要求實(shí)現(xiàn)以下函數(shù): Status DelSub(SString &s, SString t); /* 從串s中刪除所有和串t匹配的子串。 */ /* 若有與t匹配的子串被刪除,則返回TRUE;*/ /* 否則返回FALSE

14、 */ 定長(zhǎng)順序串SString的類(lèi)型定義: typedef unsigned char SString[MAXSTRLEN+1]; /* s[0] is the string's length */ 注:這題在Status DelSub(SString &s, SString t)函數(shù)前要寫(xiě)一個(gè)int Index(SString s, SString t,int pos )的函數(shù)。如下: int Index(SString s, SString t,int pos ) { int i = pos; int j = 1;

15、 while( i<= s[0]&&j<=t[0]) { if( s[i] == t[j] ){ ++i; ++j; } else{i= i-j+2;j=1;} } if( j > t[0] ) return i - t[0]; else return 0; } Status DelSub(SString &s, SString t) /* 從串s中刪除所有和串t匹配的子串。 */ /* 若有與t匹配的子串被刪除,則返回TRUE;*/ /* 否則返回FALSE

16、 */ { int flag = 0; int i,j,w; for( i = 1, j = 1; i <= s[0]; ) { w = Index( s, t, i); if( !w ) { while( i <= s[0] ) s[j++] = s[i++]; } else { while( i < w )

17、 s[j++] = s[i++]; flag++; i += t[0]; } } s[0] = --j; if( flag ) return TRUE; return FALSE; } ⑤ 假設(shè)以定長(zhǎng)順序存儲(chǔ)結(jié)構(gòu)表示串,試設(shè)計(jì) 一個(gè)算法,求串s中出現(xiàn)的第一個(gè)最長(zhǎng)重復(fù)子串及 其位置,并分析你的算法的時(shí)間復(fù)雜度。 要求實(shí)現(xiàn)以下函數(shù): void CommonS

18、tr(SString s, SString &sub, int &loc); /* 求串s中出現(xiàn)的第一個(gè)最長(zhǎng)重復(fù)子串sub及其位置loc */ 定長(zhǎng)順序串SString的類(lèi)型定義: typedef unsigned char SString[MAXSTRLEN+1]; /* s[0] is the string's length */ void CommonStr(SString s, SString &sub, int &loc) /* 求串s中出現(xiàn)的第一個(gè)最長(zhǎng)重復(fù)子串sub及其位置loc */ { int index=0,length=0,lengt

19、h1,i=0,j,k; while(i=length) { index=i; length=length1; } j=j+length1; } else j++; } i++; } loc=index; sub[0]=length; }

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!