版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
約瑟夫環(huán)(Joseph)問題
姓名:學(xué)號:
系別:指導(dǎo)老師:目錄1.程序設(shè)計目標2.問題描述3.概要設(shè)計4.詳細設(shè)計5.測試報告6.總結(jié)1.程序設(shè)計目標約瑟夫(Joseph)環(huán)問題是數(shù)據(jù)結(jié)構(gòu)中的經(jīng)典問題,在學(xué)習(xí)線性表的時候常用到約瑟夫環(huán)問題,通過學(xué)習(xí)約瑟夫環(huán)問題能提高對線性表的理解和應(yīng)用能力。約瑟夫環(huán)問題可利用多種方法求解,本設(shè)計主要利用單向循環(huán)鏈表存儲結(jié)構(gòu)模擬此過程,按照出列的順序輸出各個人的編號。同時,通過查找C語言相關(guān)知識,分析約瑟夫環(huán)問題與循環(huán)鏈表之間的聯(lián)系,然后形成算法的思想對約瑟夫環(huán)問題用C語言進行編譯實現(xiàn)。2.問題描述編號是1,2,……,n的n個人按照順時針方向圍坐一圈,每個人只有一個密碼(正整數(shù))。一開始任選一個正整數(shù)作為報數(shù)上限值m,從第一個人開始順時針方向自1開始順序報數(shù),報到m時停止報數(shù)。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下一個人開始重新從1報數(shù),如此下去,直到所有人全部出列為止。設(shè)計一個程序來求出出列順序。2.問題描述圖1Joseph環(huán)示意圖3.概要設(shè)計本設(shè)計實現(xiàn)約瑟夫環(huán)問題主要由三個模塊構(gòu)成:主模塊、鏈表的創(chuàng)建、輸出序列。圖2各模塊調(diào)用關(guān)系3.概要設(shè)計單向循環(huán)鏈表:將單鏈表尾節(jié)點的指針端由空指針改為指向頭節(jié)點,使整個單鏈表形成一個環(huán)。圖3所示為帶頭節(jié)點的循環(huán)單鏈表。
圖3循環(huán)單鏈表
4.詳細設(shè)計鏈表的創(chuàng)建主要用到CreateLinkList()函數(shù),首先從主函數(shù)main()函數(shù)中讀取個人信息,包括人數(shù)、每個人持有的密碼以及第一個報數(shù)值,然后開始創(chuàng)建循環(huán)單鏈表來存儲每個人的密碼,創(chuàng)建完成后返回main()函數(shù)。
4.詳細設(shè)計圖4鏈表的生成
4.詳細設(shè)計輸出出對序列主要用到Joseph()函數(shù),首先從創(chuàng)建好的循環(huán)鏈表中按初始密碼依次找出對應(yīng)出列序列,然后依次輸出每個人持有的密碼c,當所有密碼輸出后,刪除相應(yīng)的節(jié)點,并釋放所占有的存儲空間,返回主函數(shù)。
4.詳細設(shè)計圖5輸出序列的實現(xiàn)5.測試報告//尾插入法創(chuàng)建鏈表voidCreateLinkList(LinkList*&L,intn){ LinkList*s,*c; inti; L=(LinkList*)malloc(sizeof(LinkList));//創(chuàng)建頭節(jié)點
c=L; printf("請輸入第1個元素的密碼:"); scanf("%d",&(c->cipher)); c->data=1; for(i=2;i<=n;i++) { s=(LinkList*)malloc(sizeof(LinkList)); printf("請輸入第%d個元素的密碼:",i); scanf("%d",&(s->cipher)); s->data=i; c->next=s; c=s; } c->next=L;}5.測試報告voidJoseph(LinkList*&L,intm,intn)//出列{ LinkList*s,*c; inti=1; c=L; printf("輸出出對序列:"); while(n) { while(i!=m) { s=c; c=c->next; i++; } printf("%-3d",c->data); m=c->cipher; s->next=c->next; free(c); c=s->next; i=1; n--; } printf("\n");}5.測試報告圖6Joseph環(huán)編譯結(jié)果
6.總結(jié)通過本次的課程設(shè)計,我了解到約瑟夫環(huán)問題是由古羅馬著名的史學(xué)家Josephus提出的問題基礎(chǔ)上演變而來,所以也稱為Josephus問題。Jo
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游泳教學(xué)課程設(shè)計
- 2024年中國丙肝酶免診斷試劑盒市場調(diào)查研究報告
- 土方開挖施工方案范文
- 2025至2030年中國橡塑組合剪刀行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國數(shù)控雕銑機用恒功率電主軸行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國奶油金桔行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國多媒體電教臺行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國PVC改質(zhì)粉末丁腈膠行業(yè)投資前景及策略咨詢研究報告
- 物業(yè)管理服務(wù)合同的法律風(fēng)險分析
- 2024年中國支承件市場調(diào)查研究報告
- 基坑土方施工方案評審意見
- 大連市小升初手冊
- 會陰阻滯麻醉完整版PPT課件
- 四輥不可逆鋁板冷軋機的設(shè)計
- 工地三相五線制電路布線詳解20160318
- 新《安全生產(chǎn)法》解讀PPT課件
- 人才梯隊-繼任計劃-建設(shè)方案(珍貴)
- WLANAP日常操作維護規(guī)范
- 《健身氣功》(選修)教學(xué)大綱
- GE公司燃氣輪機組支持軸承結(jié)構(gòu)及性能分析
- 《昆明的雨》優(yōu)質(zhì)課一等獎(課堂PPT)
評論
0/150
提交評論