授課題目隊列的應(yīng)用——舞伴配對問題授課類型課首次授課_第1頁
授課題目隊列的應(yīng)用——舞伴配對問題授課類型課首次授課_第2頁
授課題目隊列的應(yīng)用——舞伴配對問題授課類型課首次授課_第3頁
授課題目隊列的應(yīng)用——舞伴配對問題授課類型課首次授課_第4頁
授課題目隊列的應(yīng)用——舞伴配對問題授課類型課首次授課_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、授課題目隊列的應(yīng)用一一舞伴配對問題授課類型實驗課首次授課時間2021年9月30日學(xué)時2教學(xué)目標(biāo)1 .掌握隊列的類型定義方法;2 .理解和掌握循環(huán)隊列解決假溢出的方法,并能靈活運(yùn)用隊列知識對現(xiàn)實生活中的實際問題提出解決方案.重點與難點循環(huán)隊列判斷隊滿和隊空的條件以及循環(huán)隊列的應(yīng)用教學(xué)手段與方法上機(jī)編程、調(diào)試并進(jìn)行驗證教學(xué)過程:包括授課思路、過程設(shè)計、講解要點及各局部具體內(nèi)容、時間分配等實驗內(nèi)容:利用循環(huán)隊列模擬舞伴配對問題:在舞會上,男、女各自排成一隊.舞會開始時.依次從男隊和女隊的隊頭各出一人配成舞伴.如果兩隊初始人數(shù)不等,那么較長的那一隊中未配對者等待下一輪舞曲.要求:a.假設(shè)初始男、女人數(shù)

2、及性別已經(jīng)固定,舞會的輪數(shù)從鍵盤輸入,試模擬解決上述舞伴配對問題.b.從屏幕輸出每一輪舞伴配對名單,如果在該輪有未配對的,能夠從屏幕顯示下一輪第一個出場的未配對者的姓名.編程思路:首先建立循環(huán)隊列的存儲結(jié)構(gòu),為了區(qū)分男女隊,需要設(shè)置兩個循環(huán)隊列,隊列中元素的數(shù)據(jù)類型分別為字符型和整型,然后設(shè)計如下函數(shù):ManQueue(Q)和WomanQueue(Q)(建立男人和女人隊列)以及PeiDui(Q1,Q2)(舞伴配對),程序描述如下:#include<stdio.h>#include<stdlib.h>#defineMAXQSIZE50typedefstructchar*b

3、ase;intfront;intrear;ManQueue;typedefstructint*base;intfront;intrear;WomanQueue;voidInitManQueue(ManQueue&M,intm)(M.base=(char*)malloc(MAXQSIZE*sizeof(char);if(!M.base)exit(0);M.front=M.rear=0;inti;printf("請輸入外不同的字母代表撲不同的男生姓名n",m,m);for(i=0;i<m;i+)(scanf("%c,&M.basei);getch

4、ar();M.rear=i;if(M.rear+1)%MAXQSIZE=M.front)exit(0);voidInitWomanQueue(WomanQueue&W,intw)W.base=(int*)malloc(MAXQSIZE*sizeof(int);if(!W.base)exit(0);W.front=W.rear=0;inti;printf("請輸入外不同的數(shù)字代表撲不同的女生姓名n",w,w);for(i=0;i<w;i+)scanf("%d,&W.basei);getchar();W.rear=i;if(W.rear+1)%M

5、AXQSIZE=W.front)exit(0);voidPeiDui(ManQueue&M,WomanQueue&W,intm,intw,intx)inti;if(m<w)for(i=1;i<=x;i+)printf"第晚中男女配對名單如下:n",i;M.front=0;while(M.front<M.rear)(if(W.front=W.rear)W.front=0;printf("%c與dn",M.baseM.front,W.baseW.front);M.front+;W.front+;if(W.front=W.re

6、ar)W.front=0;printf("下輪中第一個出場未配對者是:%dn",W.baseW.front);elsefor(i=1;i<=x;i+)(printf("第晚中男女配對名單如下:n",i);W.front=0;while(W.front<W.rear)(if(M.front=M.rear)M.front=0;printf("%c與dn",M.baseM.front,W.baseW.front);M.front+;W.front+;)if(M.front=M.rear)M.front=0;printf(&quo

7、t;下輪中第一個出場未配對者是:%cn",M.baseM.front);)voidmain()ManQueueM;WomanQueueW;intw,m,x;printf("請分別輸入男生和女生人數(shù)m和w的值n");scanf("%d%d",&m,&w);/注意輸入數(shù)據(jù)完后把回車符賦值給getchar,預(yù)防在接下的/輸入中出現(xiàn)錯誤的賦值!getchar();InitManQueue(M,m);InitWomanQueue(W,w);printf("請輸入要舞蹈的輪數(shù)x的值n");scanf("%d",&x);PeiDui(M,W,m,w,x);那么運(yùn)行結(jié)果如下圖:SJfAFrogramFilesMicrosoftVisual5tudioM-JOX請分別輸入男生和女生人數(shù)描加的值請輸入2個不同的字母代表2

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論