0)的n個人按照順時針">
數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)

數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)

ID:30237730

大?。?0.95 KB

頁數(shù):14頁

時間:2018-12-28

數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)_第1頁
數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)_第2頁
數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)_第3頁
數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)_第4頁
數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)_第5頁
資源描述:

《數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項目的正常、順利開展,特制定安保從業(yè)人員的業(yè)務(wù)技能及個人素質(zhì)的培訓(xùn)計劃數(shù)據(jù)結(jié)構(gòu)實驗報告約瑟夫環(huán)  一、上機(jī)實驗的問題和要求:  約瑟夫環(huán)  問題描述:編號是1,2,?,n(n>0)的n個人按照順時針方向圍坐一圈,每人持有一正整數(shù)密碼。開始時任選一個正整數(shù)作為報數(shù)上限值m,從某個人開始按順時針方向自1開始順序報數(shù),報到m時停止報數(shù),報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下一個人開始重新從1報數(shù),如此下去,直到所有人全部出列為止。令n最大值取30。設(shè)計一個程序來求出出列順序,并輸出

2、結(jié)果?! 』疽螅豪脝蜗蜓h(huán)鏈表存儲結(jié)構(gòu)模擬此過程,按照出列的順序輸出各人的編號?! 《?、程序設(shè)計的基本思想,原理和算法描述:  算法的基本思想:  約瑟夫環(huán)問題中的數(shù)據(jù)是人所在的位置,而這種數(shù)據(jù)是存在“第一元素、最后元素”,并且存在“唯一的前驅(qū)和后繼的”,符合線性表的特點。由于需要模擬約瑟夫環(huán)的出列問題,可以采用順序表來實現(xiàn)線性表,完成出列順序的輸出?! 『诵乃惴ㄖ饕譃閮刹剑骸 ?、確定需要刪除的位置,  2、設(shè)置并刪除該位置。目的-通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到安保行業(yè)的發(fā)展的巨大潛力,可提升其的專業(yè)水平,并確

3、保其在這個行業(yè)的安全感。為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項目的正常、順利開展,特制定安保從業(yè)人員的業(yè)務(wù)技能及個人素質(zhì)的培訓(xùn)計劃  已知報數(shù)間隔m,我們可以把當(dāng)前位置加上m獲得需要刪除的位置,如果獲得的位置超過順序表中實際元素的總長度,則可以通過減去數(shù)組的實際長度來修正。然后把順序表中的當(dāng)前指向位置設(shè)置為該位置,繼而刪掉該位置?! 》磸?fù)進(jìn)行上述確定位置和刪除位置的操作,直到順序表為空?! ≈鞒绦虻牧鞒蹋骸 〕绦蛴扇齻€模塊組成:  1、輸入模塊:無提示語句,直接輸入總?cè)藬?shù)n和報數(shù)次數(shù)m,中間用逗號隔開。  2、處理模塊:將元素儲存

4、于順序表中。在主函數(shù)中根據(jù)報數(shù)間隔確定需要刪除的元素的位置,在順序表中設(shè)置該位置并刪除該位置,同時輸出該位置的值。反復(fù)設(shè)置并刪除直到表空?! ?、輸出模塊:分別在DOS下和文件中,按移除元素的順序依次顯示其位置?! 「鞒绦蚰K之間的層次關(guān)系:  主函數(shù)會按設(shè)計的方法調(diào)用順序表中“獲取實際長度”、“設(shè)置需要刪除元素的位置”、“移除該位置元素”和“判斷是否為空表”四種方法方法,使元素依次出列,并正確結(jié)束程序?! ∪⒃闯绦蚣白⑨專耗康?通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到安保行業(yè)的發(fā)展的巨大潛力,可提升其的專業(yè)水平,并確保其在這個

5、行業(yè)的安全感。為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項目的正常、順利開展,特制定安保從業(yè)人員的業(yè)務(wù)技能及個人素質(zhì)的培訓(xùn)計劃  #include  #include  #include  /*宏定義和單鏈表類型定義*/  #defineListSize100  typedefintDataType;  typedefstructNode  {  DataTypedata;  structNode*next;  }ListNode,*LinkList;  /*函數(shù)聲明*/  LinkListCreateCycList(intn);/*創(chuàng)

6、建一個長度為n的循環(huán)單鏈表的函數(shù)聲明*/  voidJosephus(LinkListhead,intn,intm,intk);/*在長度為n的循環(huán)單鏈表中,報數(shù)為編號為m的出列*/  voidDisplayCycList(LinkListhead);/*輸出循環(huán)單鏈表*/  voidmain()  {  LinkListh;  intn,k,m;目的-通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到安保行業(yè)的發(fā)展的巨大潛力,可提升其的專業(yè)水平,并確保其在這個行業(yè)的安全感。為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項目的正常、順利開展,特

7、制定安保從業(yè)人員的業(yè)務(wù)技能及個人素質(zhì)的培訓(xùn)計劃  printf("輸入環(huán)中人的個數(shù)n=");  scanf("%d",&n);  printf("輸入開始報數(shù)的序號m=");  scanf("%d",&k);  printf("輸出結(jié)果為:");  scanf("%d",&k);  h=CreateCycList(n);  Josephus(h,n,m,k);  }  voidJosephus(LinkListhead,intn,intm,intk)  /*在長度為n的循環(huán)單鏈表中,從第k個人開始報數(shù),數(shù)到m的人出列*/{  ListN

8、ode*p,*q;  inti;  p=head;  for(i=1;inext;  }  while(p->next!=p)  {for(i=1;inext;  }  q->next=p->next;/*

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。