版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.-工業(yè)學(xué)院計算機工程系?數(shù)據(jù)結(jié)構(gòu)?實驗報告實驗名稱實驗三、循環(huán)隊列的應(yīng)用與串的匹配操作實驗時間學(xué)生班級學(xué)號指導(dǎo)教師批閱教師成績實驗?zāi)康模?掌握循環(huán)隊列和串的基本原理 2掌握循環(huán)隊列和串的存儲結(jié)構(gòu) 3掌握循環(huán)隊列的入隊、出隊、判斷隊空的實現(xiàn)方法和串的匹配方法 4掌握循環(huán)隊列和串的基本應(yīng)用和實現(xiàn)方法實驗設(shè)備與要求:PC機一臺,安裝有Windows操作系統(tǒng)以及VC6.0及以上版本1熟悉C+語言編程 2熟練使用C+語言實現(xiàn)循環(huán)隊列的入隊、出隊、判斷??盏炔僮鳎钠ヅ洳僮?3熟練使用循環(huán)隊列的入隊、出隊算法,串的BF算法。實驗容:1、舞伴配對問題:假設(shè)在周末舞會上,男士們和女士們進入舞廳時,各自排成
2、一隊。跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。假設(shè)兩隊初始人數(shù)不相同,那么較長的那一隊中未配對者,等待下一輪舞曲。現(xiàn)要求寫一算法模擬上述舞伴配對問題。 2、用BF算法實現(xiàn)串S=abbacdbaafcefg,T=cdbaaf的匹配操作。實驗步驟及實驗結(jié)果記錄:算法分析: 1、舞伴配對問題:假設(shè)在周末舞會上,男士們和女士們進入舞廳時,各自排成一隊。跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。假設(shè)兩隊初始人數(shù)不相同,那么較長的那一隊中未配對者,等待下一輪舞曲?,F(xiàn)要求寫一算法模擬上述舞伴配對問題。 2、用BF算法實現(xiàn)串S=abbacdbaafcefg,T=cdbaaf的匹配操作
3、。問題分析:先入隊的男士或女士亦先出隊配成舞伴。因此該問題具體有典型的先進先出特性,可用隊列作為算法的數(shù)據(jù)結(jié)構(gòu)。在算法中,假設(shè)男士和女士的記錄存放在一個數(shù)組中作為輸入,然后依次掃描該數(shù)組的各元素,并根據(jù)性別來決定是進入男隊還是女隊。當這兩個隊列構(gòu)造完成之后,依次將兩隊當前的隊頭元素出隊來配成舞伴,直至某隊列變空為止。此時,假設(shè)某隊仍有等待配對者,算法輸出此隊列中等待者的人數(shù)及排在隊頭的等待者的名字,他或她將是下一輪舞曲開始時第一個可獲得舞伴的人。偽代碼:輸入兩個隊列兩個隊列進行入隊操作判斷隊列長度兩個隊列進行匹配出隊操作短隊列出對完成,長隊列等待下一隊列的到來設(shè)Man對為ABCDEFGH,設(shè)W
4、oman隊為IJKLMN。當Man隊列和Woman隊列都入隊完成之后,開始配對:IJKLMN此時Man隊列就還有兩個人沒有舞伴,等待下一輪Woman的隊列參照教材所列BF算法實現(xiàn),串S和T的匹配操作。1、在串S和串T中設(shè)比較的起始下標i和j;2、循環(huán)直到S中所剩字符個數(shù)小于T的長度或T的所有字符均比較完 2.1 如果Si=Tj,繼續(xù)比較S和T的下一個字符;否那么將i和j回溯,準備下一趟比較;3、如果T中所有字符均比較完,那么匹配成功,返回匹配的起始比較下標; 否那么,匹配失敗,返回0; 4、S=abbacdbaafcefg,T=cdbaaf程序代碼1、舞伴配對問題:頭文件:LinkQueue.
5、h#pragmaoncetemplate structNodeDataType data;Node * next;templateclassLinkQueuepublic:LinkQueue();LinkQueue();void EnQueue(DataType x);DataType DeQueue();DataType GetQueue();int getArrayLen(DataType Array);int Empty();private:Node * front, *rear;源文件:LinkQueue.cpp#includeLinkQueue.htemplateLinkQueue:
6、LinkQueue()Node *s = NULL;s = newNode;s-next = NULL;front = rear = s;templateLinkQueue:LinkQueue()Node *p = NULL;while (front != NULL)p = front-next;delete front;front = p;templatevoidLinkQueue:EnQueue(DataTypex)Node*s = NULL;s = newNode;s-data = x;s-next = NULL;rear-next = s;rear = s;templateDataTy
7、peLinkQueue:DeQueue()Node *p = NULL;int x;if (rear = front) throw下溢;p = front-next;x = p-data;front-next = p-next;if (p-next = NULL)rear = front;delete p;return x;templateDataTypeLinkQueue:GetQueue()if (front != rear)return front-next-data;elsereturnfalse;templateintLinkQueue:Empty()if (front = rear
8、)return 1;elsereturn 0;template /獲取數(shù)組長度intLinkQueue:getArrayLen(DataTypearray)return (sizeof(array) / sizeof(array0)-1);源文件:LinkQueue_main.cpp#include#includeLinkQueue.cppusingnamespace std;/334a6c1d5e27c49d 543b75adbb34afc0int main() LinkQueue Q1;LinkQueue Q2;char Man100;char Woman100;int length1,
9、length2;cout Man;cout Woman;cout endl;length1 = strlen(Man); /獲取Man數(shù)組的長度length2 = strlen(Woman); /獲取Woman數(shù)組的長度cout 男士人數(shù): length1 女士人數(shù):length2 endl;cout endl;for (int i = 0; i length1; i+) /對Man數(shù)組進行入隊操作Q1.EnQueue(Mani);for (int i = 0; i length2; i+) /對Woman進行入隊操作Q2.EnQueue(Womani);if (length1 = lengt
10、h2) /當男士人數(shù)小于女士人數(shù)時,先開始男士的配對,剩余女士進行下一組配對cout 配對開始!男士在前 endl;cout 女士 男士 endl;for (int i = 0; i length1; i+)cout Q1.GetQueue() - Q2.GetQueue() endl;Q1.DeQueue();Q2.DeQueue();if (length1 != length2)cout 還有以下幾位女士等待下一組: endl;for (int i = length1; i length2; i+)cout Q2.GetQueue() ;Q2.DeQueue();cout endl;els
11、eif (length2 = length1) /當女士人數(shù)小于男士人數(shù)時,先開始女士的配對,剩余男士進行下一組配對cout 配對開始!女士在前 endl;cout 女士 男士 endl;for (int i = 0; i length2; i+)cout Q2.GetQueue() - Q1.GetQueue() endl;Q1.DeQueue();Q2.DeQueue();if (length1 != length2)cout 還有以下幾位男士等待下一組: endl;for (int i = length2; i length1; i+)cout Q1.GetQueue() ;Q1.DeQ
12、ueue();cout endl;return 0;程序代碼2、BF算法:#includeusingnamespace std;int main()char S = abbacdbaafcefg;char T = cdbaaf;cout 串S: Sendl;cout 串T: Tendl;cout 開始匹配! endl;int i = 0, j = 0;while (Si != 0) & (Tj != 0)if (Si = Tj)i+;j+;elsei = i - j + 1;j = 0;if (Tj = 0)cout 匹配成功! endl;cout T開始匹配S位置: i - j + 1 endl;elsecout 匹配失?。?endl;
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年南陽市中醫(yī)院公開招聘高層次人才55人備考題庫有答案詳解
- 2025年九江一中學(xué)招聘備考題庫及一套參考答案詳解
- 2025年中日友好醫(yī)院公開招聘藥物臨床試驗研究中心I期臨床試驗病房合同制人員的備考題庫附答案詳解
- 2025年杭州師范大學(xué)招聘65人備考題庫(冬季)及答案詳解一套
- 2025年深圳市南華幼兒園招聘備考題庫及一套完整答案詳解
- 2025年上海民生輪船有限公司招聘備考題庫及1套參考答案詳解
- 2025年中國鐵路上海局集團有限公司招聘普通高校畢業(yè)生1236人備考題庫一(本科及以上學(xué)歷)完整答案詳解
- 2025年永州市國有資本投資運營有限公司公開招聘工作人員備考題庫含答案詳解
- 2025年公開考核招聘18人瀘州職業(yè)技術(shù)學(xué)院事業(yè)編制專任教師備考題庫有答案詳解
- 2025年十堰市中醫(yī)醫(yī)院高層次人才招聘備考題庫及參考答案詳解
- 2025山東省人民檢察院公開招聘聘用制書記員(40名)備考考試題庫及答案解析
- 2025年10月注冊審核員《職業(yè)健康安全管理體系基礎(chǔ)》真題及答案
- 高效企業(yè)員工激勵演講稿范本
- 2026中國人民銀行直屬事業(yè)單位招聘60人筆試備考題庫附答案解析(奪冠)
- 產(chǎn)品質(zhì)量檢驗標準化操作規(guī)程及模板
- 陰陽五行與人體課件
- 2025年秋季學(xué)期國家開放大學(xué)《憲法學(xué)》形考任務(wù)1-4答案
- 2025陜西三秦環(huán)??萍脊煞萦邢薰窘?jīng)理層成員市場化選聘工作5人考試筆試參考題庫附答案解析
- 2025年采購人員個人年終總結(jié)6篇
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)三年級上冊期末考試模擬試卷及答案(三套)
- ?;窂臉I(yè)資格證考試題及答案解析
評論
0/150
提交評論