版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學(xué)生搭配問題學(xué)生姓名學(xué)生學(xué)號指導(dǎo)教師
如12年12月3日課程設(shè)計任務(wù)書姓名班級學(xué)號設(shè)計題目學(xué)生搭配問題理論要點隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。循環(huán)隊列是在隊列的1順序存儲結(jié)構(gòu)中,除了用乙組地址連續(xù)的存儲單元依次存放從隊列頭到隊列尾的元素外,尚需附設(shè)兩個指針front和rear分別指示隊列頭元素和隊列尾元素的位置。循環(huán)隊列的入隊,出隊,判隊滿,判隊空。設(shè)計目標(biāo)(1)輸出每曲配對情況。(2)計算出任何一個男生(編號為不和任意女生(編號為丫),在第K曲配對跳舞的情況.至少求出K的兩個值。研究方法步驟(1)先建立兩個循環(huán)隊列SqQueue和SqQueue2。(2)將男生、女生兩組人分別存入這兩個隊列。(3)將男女生分別進行入隊列和出隊列操作,且實現(xiàn)搭配輸出。(4)循環(huán)隊列的長度分別設(shè)為男女生的個數(shù)即可。(5)在計算機終端輸出的結(jié)果是:根據(jù)要求輸出男生女生搭配情況。
預(yù)期名結(jié)果每一首歌曲播放時,男生和女生搭配情況(只輸出編號即可)當(dāng)要查找的男女搭配時輸出歌曲編號,和他們搭配的總次數(shù)。通過以上分析,該程序具有可行。計劃與進步的安排1、2012年11月20日之前尋找到解決問題思搭配問題的路2、2012年11月25日之前必須編寫出程序3、2012年11月26日之前檢查程序的運行并找出錯誤程序4、2012年11月29日之前找到解決錯誤的方法5、2012年11月30日寫數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告摘要針對學(xué)生搭配問題,循環(huán)隊列是一種重要的鏈?zhǔn)浇Y(jié)構(gòu),其特殊性在于需附設(shè)兩個指針front和rear分別指示對頭元素及隊尾元素的位置且對頭和隊尾相鄰接。在程序的設(shè)計過程中,運用了各種基本的算法,有判斷隊空及隊滿,出隊,入隊等循環(huán)隊列是在隊列的順序存儲結(jié)構(gòu)中,除了用乙組地址連續(xù)的存儲單元依次存放從隊列頭到隊列尾的元素外,尚需附設(shè)兩個指針front和rear分別指示隊列頭元素和隊列尾元素的位置。學(xué)生搭配問題是典型的只有采用循環(huán)隊列才能解決的問題,實驗表明該算法的空間復(fù)雜度優(yōu)于其他算法。本文用循環(huán)隊列會很好的把這個程序設(shè)計出來,會有很好的效果。得出的程序運行結(jié)果能夠很形象的把結(jié)果表示出來。關(guān)鍵詞:學(xué)生配對,數(shù)據(jù)結(jié)構(gòu),循環(huán)隊列。目錄摘要 錯誤!未定義書簽。1設(shè)計題目 錯誤!未定義書簽。TOC\o"1-5"\h\z\o"CurrentDocument"2運行環(huán)境 1\o"CurrentDocument"3算法設(shè)計的思想 1\o"CurrentDocument"4算法的流程圖 2\o"CurrentDocument"5算法設(shè)計分析 26源代碼 3\o"CurrentDocument"7運行結(jié)果分析 8\o"CurrentDocument"8收獲及體會 8\o"CurrentDocument"參考文獻 9致謝學(xué)生搭配問題一班有m個女生,有n個男生(m不等于叫現(xiàn)要開一個舞會.男女生分別編號坐在舞池的兩邊的椅子上.每曲開始時,依次從男生和女生中各出一人配對跳舞,本曲沒成功配對者坐著等待下一曲找舞伴。請設(shè)計一系統(tǒng)模擬動態(tài)地顯示出上述過程,要求如下:(1)輸出每曲配對情況(2)計算出任何一個男生(編號為X)和任意女生(編號為Y),在第K曲配對跳舞的情況.至少求出K的兩個值。.運行環(huán)境本課題的程序設(shè)計和測試等環(huán)節(jié)都是在Windows7操作系統(tǒng)下完成,軟件的編譯測試環(huán)境為vc6.0以c語言編寫的。軟件的硬件運行需求非常低,任何計算機都可運行。.算法設(shè)計的思想基本思路:隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。循環(huán)隊列是在隊列的順序存儲結(jié)構(gòu)中,除了用乙組地址連續(xù)的存儲單元依次存放從隊列頭到隊列尾的元素外,尚需附設(shè)兩個指針front和rear分別指示隊列頭元素和隊列尾元素的位置。循環(huán)隊列(兩個),將男生、女生兩組人分別存放,以實現(xiàn)循環(huán)配對輸出。循環(huán)隊列的入隊,出隊,判隊滿,判隊空。(1)要模擬動態(tài)地顯示出現(xiàn)題目中所要求的循環(huán),我們要先建立兩個循環(huán)隊列I」SqQueue和SqQueue2。(2)將男生、女生兩組人分別存入這兩個隊列。以實現(xiàn)他們的循環(huán)配對輸出,這是循環(huán)隊列固有的特性。(3)利用循環(huán)隊列的特性,將男女生分別進行入隊列和出隊列操作,且實現(xiàn)搭配輸出。(4)循環(huán)隊列的長度分別設(shè)為男女生的個數(shù)即可。(5)在計算機終端輸出的結(jié)果是:根據(jù)要求輸出男生女生搭配情況關(guān)鍵問題:循環(huán)隊列的應(yīng)用解決方法:數(shù)據(jù)模型(邏輯結(jié)構(gòu)):循環(huán)隊列(兩個),將男生、女生兩組人分別存放,以實現(xiàn)循環(huán)配對輸出。存儲結(jié)構(gòu):循環(huán)鏈表核心算法:循環(huán)隊列的入隊,出隊,判隊滿,判隊空。輸入數(shù)據(jù):男生人數(shù)、女生人數(shù),歌曲數(shù)量輸出數(shù)據(jù):每一首歌曲播放時,男生和女生搭配情況(只輸出編號即可)當(dāng)要查找的男女搭配時輸出歌曲編號,和他們搭配的總次數(shù)。通過以上分析,該程序具有可行性。.算法的流程DeQueue確孔男女一個數(shù)和曲數(shù)L犯kDeQueue確孔男女一個數(shù)和曲數(shù)L犯k和靠我的編號Pmit函數(shù)結(jié)束IiiitQ.算法設(shè)計分析調(diào)試過程中出現(xiàn)的問題及解決方法:問題:在構(gòu)造隊列時,設(shè)隊列分配的最大空間為男女生的個數(shù),此時便無法根據(jù)Q.front=Q.rear來判別隊列空間是〃空〃還是〃滿〃,因此,在入隊操作即插入一個新元素作為新的隊尾元素時出現(xiàn)了問題,即最后一位同學(xué)無法入隊。解決方法:將隊列分配的最大空間至少再增加一個'(()>p0P<|eo6)a|iq/v\:()>pop+iie/v\=|eo6:|eo6廠>pop)(iie/v\廠>pop)daa|spiOA'anan^)>|U!~|{JeajNuclij}pnjisppadXiLildsnsnb¥即。業(yè)^xau¥apoNdprij^s:uunuiui}apoNdpnj^sppadXi'uuaisXsiuippadXi//I-MOldySAO9uipp#0XO決三9uipp#IXO9uipp#0SSlVd9uipp#ISnyl^uipp#093ZISXVIAI9uipp#<q,DO||euj>apnpui#vipuuR〉apnpui#<q,O!pis>apnpu!#<q'6uuis>apnpui#鼠V1T9voidInitQ(LinkQueue&Q)(QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode));Q.front=p;Q.rear=p;Q.front->next=NULL;)voidEnQueue(LinkQueue&Q,intnum)(QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode));p->num=num;p->next=NULL;Q.rear->next=p;Q.rear=p;)voidDeQueue(LinkQueue&Q,int&num)(QueuePtrp,q;if(Q.front==Q.rear)printf("隊列為空)p=Q.front->next;num=p->num;Q.front->next=p->next;q=p->next;if(Q.rear==q)Q.rear=Q.front;free(p);)voidprintF(LinkQueue&F,inti)(QueuePtrp;intn=1;while(n<i)(printf("_");n++;)p=F.front->next;while(F.rear!=p)(printf("%d",p->num);p=p->next;}printf("%d\n",p->num);}voidprintM(LinkQueue&M,inti)(QueuePtrp;intn=1;while(n<i)(printf("_");n++;}p=M.front->next;while(M.rear!=p)(printf("%d",p->num);p=p->next;)printf("%d\n",p->num);)intmain()(intm,n,k,i,a,b;intcount=0,num;QueuePtrp,q;LinkQueueF;LinkQueueM;printf("請輸入女生數(shù)量:");scanf("%d",&m);printf("請輸入男生數(shù)量:");scanf("%d",&n);printf("請輸曲子號:");scanf("%d",&k);printf("請輸入要查找的男生編號:");scanf("%d",&a);printf("請輸入要查找的女生編號:");scanf("%d",&b);InitQ(F);InitQ(M);for(i=1;i<=m;i++)(EnQueue(F,i);)for(i=1;i<=n;i++)(EnQueue(M,i);)for(i=1;i<=k;i++)(system("CLS");printf("第%d首曲子\n",i);printF(F,i);printM(M,i);p=F.front->next;q=M.front->next;printf("目前跳舞的是第%d號女生和第%d號男生\n",p->num,q->num);if(p->num==a&&q->num==b)(count++;printf("第%d曲是要查找的男女生跳舞\n",i);)sleep(3000);DeQueue(F,num);EnQueue(F,num);DeQueue(M,num);EnQueue(M,num);)printf("該對男女生共跳舞%d次3”工??谖唬?
system("PAUSE");return0;.運行結(jié)果分析測試及運行結(jié)果測試輸入數(shù)據(jù):男女生的個數(shù)曲子數(shù)和要查找的男女生編號輸出結(jié)果為:每首曲子男女生搭配的情況程序運行界面::\DocuAentsaridSettings\Ad>iiiistrator\^ffi\VC-M-\Debiig\Cpp1.exe 1234RfiF 22451%懿器靡友生和第:\DocuAentsaridSettings\Ad>iiiistrator\^ffi\VC-M-\Debiig\Cpp1.exe 1234RfiF 22451%懿器靡友生和第2號男生Ipressanykeytocontinue『△玄生數(shù)量:6『人舅生痛量?S『曲手號:?『人要查找的男生編號:4必浸至神前女生哧與:3廄嚼鬻]旱第遙在牛和第i巖耳牛F2 451月前跳舞的是第2號M生和第2號月生博宿曲子 345612r_j4112廄曾岸是第3號文生利第3號月生L__4Efcl2345123目褪瞬的是第4號芭生前第4號同生國潛面子 5t1234 51234P前跳用勺是第5弓乂生工□第5弓男生懦清曲子 612345.12345.收獲及體會通過一周的學(xué)習(xí)和實踐,解決實際問題(學(xué)生搭配問題),讓我對循環(huán)隊列有了更深的了解,對數(shù)據(jù)結(jié)構(gòu)產(chǎn)生了濃厚的興趣,同時也讓我提高了解決實際問題的能力。我們要不斷的通過上機來提高自己的學(xué)習(xí)水平,在上機的同時改正了自己對某些算法的錯誤使用,使自己在通過程序解決問題時抓住關(guān)鍵算法,有了算法設(shè)計思想和流程圖,并用C語言描繪出關(guān)鍵算法。參考文獻[1]數(shù)據(jù)結(jié)構(gòu)(C語言版)嚴(yán)蔚敏吳偉明編著,清華大學(xué)出版社[2]C語言程序設(shè)計(第三版)譚浩強著,清華大學(xué)出版社致謝首先,我要感謝學(xué)校給我們提供了此次課程設(shè)
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南衛(wèi)生健康職業(yè)學(xué)院《演講與辯論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度私人車輛轉(zhuǎn)讓及綠色環(huán)保認(rèn)證合同3篇
- 2025版金融風(fēng)險評估與管理服務(wù)協(xié)議2篇
- 海南師范大學(xué)《歐洲現(xiàn)代主義建筑選讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度影視作品制作擔(dān)保合同3篇
- 二零二五年度拆遷項目綜合評估居間代理服務(wù)協(xié)議書模板2篇
- 2025年度版權(quán)購買合同屬性為圖書出版權(quán)2篇
- 二零二五年度智能辦公家具銷售與服務(wù)協(xié)議3篇
- 2025年出口貿(mào)易融資續(xù)約合同范本3篇
- 幼兒園財務(wù)管理制度細(xì)則模版(2篇)
- 工程臨時用工確認(rèn)單
- 簡約清新大氣餐飲行業(yè)企業(yè)介紹模板課件
- 氮氣窒息事故案例經(jīng)驗分享
- 某公司年度生產(chǎn)經(jīng)營計劃書
- 廠房租賃合同標(biāo)準(zhǔn)版(通用10篇)
- 《教育心理學(xué)》教材
- 易制毒化學(xué)品安全管理制度(3篇)
- 建設(shè)單位業(yè)主方工程項目管理流程圖
- 斷裂力學(xué)——2Griffith理論(1)
- 風(fēng)電場崗位任職資格考試題庫大全-下(填空題2-2)
- 安全施工專項方案報審表
評論
0/150
提交評論