版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——猴子選大王課程設(shè)計總結(jié)
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告
設(shè)計題目班級姓名學(xué)號指導(dǎo)教師日期猴子選大王2023年6月25日
計算機與信息工程系
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計評閱表
設(shè)計題目班級辯論評語:姓名猴子選大王學(xué)號總結(jié)報告評語:功能實現(xiàn)辯論效果設(shè)計報告創(chuàng)新總分
一、引言
1、目的
(1)本次程序程序設(shè)計的主要目的是解決變相的“約瑟夫環(huán)〞問題猴子大王。從而使繁雜的甄選工作變得明朗簡單化。同樣,這種解決問題的思想還可以運用到其他具有類似問題的領(lǐng)域,達(dá)到一點窺面的效果。2、課程設(shè)計要求
針對本次猴子數(shù)為m,循環(huán)數(shù)為n的猴子選大王問題,要求如下:(1)基本要求:輸入數(shù)據(jù)m,n為整數(shù)。
(2)輸出形式:中文提醒依照m個猴子,數(shù)n個數(shù)的方法,輸出為大王的猴子幾號,建立一個函數(shù)來實現(xiàn)此功能。
(3)實現(xiàn)方案:使用循環(huán)單鏈表。3、課程設(shè)計試驗環(huán)境:C語言4、意義
培養(yǎng)我們的數(shù)據(jù)抽象能力。利用單向循環(huán)鏈表模擬此過程,輸出選出的大王編號。通過本課程設(shè)計,可加深我們對鏈表的了解,對今后的學(xué)習(xí)有很大幫助。5、功能實現(xiàn)
全程序以數(shù)據(jù)結(jié)構(gòu)(C語言)中的循環(huán)單鏈表為主要的設(shè)計支柱,利用了C語言簡單緊湊、靈活便利,語法限制不太嚴(yán)格,程序設(shè)計自由度大,生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高等方面的優(yōu)點。循環(huán)單鏈表是單鏈表的另一種形式,其結(jié)構(gòu)特點是鏈表中最終一個結(jié)點的指針域不再是終止標(biāo)記,而是指向整個鏈表的第一個結(jié)點,從而使鏈表形成一個環(huán),基于這樣的特點,它適合處理具有環(huán)形結(jié)構(gòu)的數(shù)據(jù)元素序列。在程序代碼的編寫中,運用了結(jié)構(gòu)體類型(structNode),動態(tài)申請內(nèi)存空間函數(shù)malloc(),釋放動態(tài)申請內(nèi)存空間函數(shù)free()等類型,同時也具有多種循環(huán)、條件語句控制程序流向,如:嵌套ifelse語句,多重for循環(huán)語句,還有鏈表中結(jié)點指針(p->next),從而使程序完全結(jié)構(gòu)化。這樣編寫出的完整程序代碼可以實現(xiàn)“猴子選大王〞功能,輸入猴子的數(shù)目m,循環(huán)數(shù)n,對m個猴子進(jìn)行編號,通過嵌套ifelse語句,for語句,一遍一遍的循環(huán),判斷,刪除,直到只剩下最終一個猴子,即大王。這樣就可以實現(xiàn)所需的基本功能了。
二、設(shè)計過程
1、頭文件說明①#include
此程序主要以C語言為編寫語言,因此在程序中要用到系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)中的輸入,輸出函數(shù),例如:scanf()函數(shù),printf()函數(shù)。所以必需在程序開頭一行寫上#include。
例如,程序中用到的相關(guān)函數(shù)就有printf(\;scanf(\;等。
②#include
在這個程序中,用到的主要是數(shù)據(jù)結(jié)構(gòu)中的循環(huán)單鏈表方面的相關(guān)知識。我們把由一個數(shù)據(jù)元素域及一個或若干個指針域組成的結(jié)構(gòu)體稱為一個結(jié)點。而在單鏈表中的每個結(jié)點,實在需要時才向系統(tǒng)申請的,也就是所謂的動態(tài)內(nèi)存空間申請。動態(tài)申請的內(nèi)存空間,當(dāng)不再需要時,必需由申請者自己釋放。C語言提供了動態(tài)申請內(nèi)存空間的函數(shù)malloc()和動態(tài)釋放內(nèi)存空間的函數(shù)free()。這些函數(shù)都包含在頭文件malloc.h中。所以也必需在程序開頭寫上#include。例如:head=q=p=(monkey*)malloc(sizeof(monkey));
這一句就是申請占用字節(jié)個數(shù)為sizeof(monkey)的monkey類型的一個結(jié)點,并且讓head,q,p三個指針同時指向這個結(jié)點。③typedefintDataType;
我們都知道,沒有實際含義的數(shù)據(jù)元素稱作抽象數(shù)據(jù)元素。在設(shè)計時遇到抽象數(shù)據(jù)元素,我們將用DataType表示該抽象數(shù)據(jù)元素的數(shù)據(jù)類型;而當(dāng)軟件設(shè)計問題具體確定時,抽象數(shù)據(jù)元素的數(shù)據(jù)類型將被具體的數(shù)據(jù)類型所取代。在本程序中,要求線性表的數(shù)據(jù)類型為int類型,可以通過重新定義抽象數(shù)據(jù)元素為int類型,來確定該抽象數(shù)據(jù)元素的數(shù)據(jù)類型。即相應(yīng)的C語句為typedefintDataType;2、結(jié)構(gòu)體說明typedefstructNode{
DataTypedata;structNode*next;}monkey;//定義結(jié)點
我們把由一個數(shù)據(jù)元素域及一個或若干個指針域組成的結(jié)構(gòu)體稱為一個結(jié)點,其中數(shù)據(jù)域用來存放數(shù)據(jù),指針域用來構(gòu)造數(shù)據(jù)元素之間的關(guān)聯(lián)關(guān)系。
所以函數(shù)中定義了單鏈表的結(jié)構(gòu)體structNode,其中data域用來存放數(shù)據(jù)素,next域用來存放一個結(jié)點的指針。monkey是structNode類型的變量。且鏈表的結(jié)點結(jié)構(gòu)如下圖所示
datanext
3、main()函數(shù)說明voidmain(){
monkey*head,*p,*q,*s;
intm,n,i;
printf(\請輸入猴子的總數(shù):\scanf(\printf(\
printf(\請輸入周期數(shù):\scanf(\printf(\
printf(\對猴子進(jìn)行編號:\\n\\n\
head=q=p=(monkey*)malloc(sizeof(monkey));for(i=1;idata=i;
p->next=q;//使鏈表循環(huán)起來p=q;
printf(\第%d位猴子的編號是:%d\\n\
}
q->next=head;head->data=m;p=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三方車場租賃協(xié)議
- 店面轉(zhuǎn)租協(xié)議書
- 智能交通管理系統(tǒng)開發(fā)及運營合同
- 人工智能輔助企業(yè)內(nèi)部溝通工具軟件開發(fā)定制服務(wù)協(xié)議
- 2024年城市規(guī)劃設(shè)計服務(wù)合同
- 光電子器件研發(fā)合作協(xié)議
- 設(shè)備采購安裝合同
- 企業(yè)級網(wǎng)絡(luò)安全解決方案合同
- 企業(yè)財務(wù)管理咨詢服務(wù)協(xié)議
- 高新技術(shù)企業(yè)知識產(chǎn)權(quán)保護策略制定與實施
- 教學(xué)反思萬能簡短11篇
- 水產(chǎn)動物增養(yǎng)殖學(xué)蝦蟹類增養(yǎng)殖終極版
- 七年級科學(xué)上冊期末測試卷
- 測試工程師年度個人工作總結(jié)和明年工作計劃模板
- 浙江工商大學(xué)高級商務(wù)漢語一期末考試 卷附有答案
- 中國人民銀行征信中心應(yīng)收賬款質(zhì)押登記操作規(guī)則
- 05K405 新型散熱器選用與安裝
- 明亞保險經(jīng)紀(jì)人考試題庫答案
- 精心設(shè)計“每日一練”探求“輕負(fù)高質(zhì)”練習(xí)策略
- 設(shè)備維護與故障排除項目設(shè)計評估方案
- 針灸推拿學(xué)100512練習(xí)題庫與參考答案
評論
0/150
提交評論