數(shù)據(jù)結構Ⅰ課程設計-約瑟夫環(huán)_第1頁
數(shù)據(jù)結構Ⅰ課程設計-約瑟夫環(huán)_第2頁
數(shù)據(jù)結構Ⅰ課程設計-約瑟夫環(huán)_第3頁
數(shù)據(jù)結構Ⅰ課程設計-約瑟夫環(huán)_第4頁
數(shù)據(jù)結構Ⅰ課程設計-約瑟夫環(huán)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結構Ⅰ課程設計-約瑟夫環(huán)數(shù)據(jù)結構Ⅰ課程設計約瑟夫環(huán)問題201401月04日33目錄目錄 3第1章問題描述 5第2章基本要求 5第3章概要設計 7數(shù)據(jù)結構的設計 7算法的設計 7抽象數(shù)據(jù)類型的設計 9第4章詳細設計 10類的定義 10設計每個成員函數(shù) 設計主函數(shù) 12第5章運行與測試 13程序運行環(huán)境 13測試結果 13程序運行結果截圖 1344第3章概要設計要設計第6章總結與心得 17參考文獻 18附錄程序源代碼 19[第1章問題描述第1章 問題描述1,2,3……nn限值1m時停止報數(shù)。報mm值,從他1有人全部出列為止。設計一個程序來求出出列順序。5PAGEPAGE6第2章基本要求第2章 基本要求建立數(shù)據(jù)模型,確定存儲結構;nm,實現(xiàn)約瑟夫環(huán)問題;出圈的順序可以依次輸出。第3章概要設計第3章 概要設計數(shù)據(jù)結構的設計mm確定指針變量ppp和。算法的設計按照模塊進行劃分:structLnode{intpwd;//密碼intbianhao;//編號structLnode*next;};采用頭插法構造鏈表,由此必須倒著輸入個人的密碼和編號,由此可計一個線性表作為緩存暫時保存?zhèn)€人密碼和編號。。n為編號,pwdn的人的密碼。將上述a[n]一次賦給鏈表第3章概要設計Lnode*L,*p;L=newLnode;L->next=NULL;for(i=num;i>0;i--){p=newLnode;p->pwd=a[i-1];p->bianhao=i;p->next=L->next;L->next=p;}用循環(huán)模擬報數(shù)的過程p=L;while(num>0){for(i=1;i<m;i++){p=p->next;if(p->next==NULL){p->next=L->next;}}Lnode*temp;temp=p->next;cout<<temp->bianhao<<"\n";p->next=temp->next;m=temp->pwd;free(temp);num--;}num是用來控制循環(huán)次數(shù)的變量值為總人數(shù)每完成一次刪除操。 即每有一個人出列,num減1。第3章概要設計循環(huán)中設置了中間變量用來存儲要刪除的結點的指針以保證刪除操 作不會導致鏈表指針無法找到下一結點。結束后掉。刪除結點即找到出列對象的同時輸出這個結點的數(shù)據(jù)域:編號 和密碼!采用類C語言定義相關的數(shù)據(jù)類型structLnode{intpwd; //每個人持有的密intbianhao; //人員編號structLnode*next; //指向下一個結點};第5章 運行與測試細設計第4章 詳細設計類的定義鏈表節(jié)點設計structLnode{intpwd;//密碼intbianhao;//編號structLnode*next;};a[n]一次賦給L:Lnode*L,*p;L=newLnode;L->next=NULL;for(i=num;i>0;i--){p=newLnode;p->pwd=a[i-1];p->bianhao=i;p->next=L->next;L->next=p;}運用循環(huán)模擬報數(shù)過程p=L;1011第5章運行與測試while(num>0){for(i=1;i<m;i++){p=p->next;if(p->next==NULL){p->next=L->next;}}Lnode*temp;temp=p->next;cout<<temp->bianhao<<"\n";p->next=temp->next;m=temp->pwd;free(temp);num--;}設計每個成員函數(shù)int pwd;int bianhao;structLnode*將密碼和編號存入程序中,通過結點指針對所需的數(shù)據(jù)進行調(diào)用。Lnode*temp找到出列對象的同時,輸出這個結點的數(shù)據(jù)域,存儲要刪除結點,直到程序運行完畢。PAGEPAGE12第5章運行與測試主函數(shù){定義輸入人數(shù)和密碼輸入相應的初始報數(shù)輸入操作完成后,輸出相應數(shù)據(jù)}第5章運行與測試第5章 運行與測試程序運行環(huán)境Windows7系統(tǒng)下在VC++6.0開發(fā)平臺進行程序的運行與測試。測試結果2684結果:3215434871645測試結果:6457312831394637982315758,測試結果:91028131261137451程序運行結果截圖數(shù)據(jù)1:程序清單第5章運行與測試運行結果:32154數(shù)據(jù)2:程序清單第5章運行與測試運行結果:64573128數(shù)據(jù)3:程序清單第5章運行與測試運行結果:91028131261137451PAGEPAGE17第6章總結與心得第6章 總結與心得我的這次數(shù)據(jù)結構課程設計的題目是《約瑟夫環(huán)問題》,通過對該題目的設計,使我加深了對數(shù)據(jù)結構的理解。做什么事通過課程設計我的收獲如下:1學知識的能力。2獨立思考,深入研究,分析問題、解決問題的能力。34根據(jù)我在課程設計中遇到得問題,我將在以后的學習過程中注意以下幾點:1、認真上好專業(yè)實驗課,多在實踐中鍛煉自己。2、寫程序的過程中要考慮周到,嚴密。3、認真的學習課本知識,并在此基礎上學會靈活運用。參考文獻參考文獻胡明,王濤等著.(C++版北京:清華大學出版社,2011.譚浩強著C程序設計(第四版)[M].社,2005.譚浩強著C++程序設計[M].附錄附錄 程序源代碼#include<iostream>usingnamespacestd;structLnode{intpwd;intbianhao;structLnode*next;};intmain(){inti=0;intnum,m;cin>>num;cout<<"輸入初始報數(shù):"<<"\n";cin>>m;cout<<"輸入密碼:"<<"\n";inta[100];for(i=0;i<num;i++)cin>>a[i];Lnode*L,*p;L=newLnode;L->next=NULL;for(i=num;i>0;i--){p=newLnode;p->pwd=a[i-1];p->bianhao=i;19附錄p->next=L->next;L->next=p;}p=L;while(num>0){for(i=1;i<m;i++){p=p->next;if(p->next==NU

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論