版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、五、詳細(xì)設(shè)計 #include#include#include#includeusing namespace std;#define MAX #define M 69class Stringprivate:int n;char *str;int *count; /記錄子串在主串中出現(xiàn)的位置 int Find(int i,String &P); / 簡單匹配算法 找到最近的匹配串后立即停止,而不向下繼續(xù)且缺乏一個數(shù)組記錄位置int *f ; /記錄失敗函數(shù)void Fail(); int KMPFind(int i,String &P); /改進(jìn)的失敗函數(shù)void ImproveFail();i
2、nt KMPFindImprove(int i,String &P); public: String(); /建立一個空串String(const char *p);String(const String &p); /拷貝函數(shù)String();int Length() return n; /返回當(dāng)前串對象長度void Output() coutstr; /輸出字符串int Find(String &P); /簡單匹配算法int KMPFind(String &P); /KMP匹配算法int KMPFindImprove(String &P); /改進(jìn)的KMP匹配算法 void Output2(
3、); /輸出子串在主串中出現(xiàn)的位置;int String:KMPFindImprove(String &P)int sum=0; int j=KMPFindImprove(0,P);while(j!=-1)countsum+=j;if(j=n-P.n) j=KMPFindImprove(j+P.n,P);return sum; void String:Output2() /輸出子串在主串中的位置 int i=0;while(counti!=counti+1 & iMAX-1) /若不再有新的子串匹配,則counti與counti+1均為0coutcounti ;i+; void menu()c
4、out*endl;coutendl;coutendl; cout 1.簡單模式匹配算法endl;coutendl;coutendl;cout 2.KMP模式匹配算法endl;coutendl;cout 4.退出endl;coutendl;coutendl;cout#endl; void main() int choice=0; menu(); clock_t start,finish;while(choice!=4)/循環(huán)可以連續(xù)選擇cout請輸入選擇choice; if(choice=1) String s1(Through aretro spectivelook at the mathe
5、matics teaching at USTC, this article summarizes universitys teaching achievements in past 45 years.);s1.Output(); coutendl;String s2(teaching);start=clock();int m=s1.Find(s2); s2.Output();cout出現(xiàn)的次數(shù)為:mendl;if(m!=0) cout匹配的位置是;s1.Output2();coutendl;finish=clock();coutendltime is:(double)(finish-start
6、)/CLK_TCKendl;if(choice=2) clock_t start,finish;start=clock();String s1(Through a retrospective look at the mathematics teaching at USTC, this article summarizes universitys teaching achievements in past 45 years.);s1.Output(); coutendl;String s2(teaching);s2.Output(); coutendl;int n=s1.KMPFind(s2);
7、cout出現(xiàn)的次數(shù)為:nendl;if(n!=0)coutn匹配的位置是;s1.Output2();coutendl;finish=clock();coutendltime is:(double)(finish-start)/CLK_TCKendl;if(choice=3) clock_t start,finish;start=clock();String s1(Through a retrospective look at the mathematics teaching at USTC, this article summarizes universitys teaching achievements in past 45 years.);s1.Output(); coutendl;String s2(teaching);s2.Output(); coutendl;int n=s1.KMPFindImprove(s2);cout出現(xiàn)在主串中的次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店餐飲部食品安全與員工健康管理制度
- 超市商品銷售及渠道管理制度
- 流調(diào)溯源篇培訓(xùn)
- 居家安全教育培訓(xùn)課件
- 活頁紙打印課件
- 2024-2025學(xué)年山東省青島市高二下學(xué)期5月部分學(xué)生質(zhì)量調(diào)研檢測歷史試題(解析版)
- 2026年國際金融學(xué)國際金融市場與投資題集及答案
- 2026年中文經(jīng)典名著閱讀理解與文學(xué)賞析試題
- 2026年軟件測試用例設(shè)計與執(zhí)行全過程剖析
- 2026年金融科技產(chǎn)品經(jīng)理試題庫區(qū)塊鏈與加密貨幣
- 東海藥業(yè)校招測評題庫
- 精準(zhǔn)定位式漏水檢測方案
- 2023氣管插管意外拔管的不良事件分析及改進(jìn)措施
- 2023自動啟閉噴水滅火系統(tǒng)技術(shù)規(guī)程
- 架線弧垂計算表(應(yīng)力弧垂插值計算)
- 工廠驗收測試(FAT)
- 市醫(yī)療保險高值藥品使用申請表
- 認(rèn)知障礙患者進(jìn)食問題評估與護(hù)理
- 高職單招數(shù)學(xué)試題及答案
- 基礎(chǔ)化學(xué)(本科)PPT完整全套教學(xué)課件
- 玻璃幕墻分項工程質(zhì)量驗收記錄表
評論
0/150
提交評論