版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——猴子選大王課程設(shè)計(jì)總結(jié)
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告
設(shè)計(jì)題目班級(jí)姓名學(xué)號(hào)指導(dǎo)教師日期猴子選大王2023年6月25日
計(jì)算機(jī)與信息工程系
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)評(píng)閱表
設(shè)計(jì)題目班級(jí)辯論評(píng)語:姓名猴子選大王學(xué)號(hào)總結(jié)報(bào)告評(píng)語:功能實(shí)現(xiàn)辯論效果設(shè)計(jì)報(bào)告創(chuàng)新總分
一、引言
1、目的
(1)本次程序程序設(shè)計(jì)的主要目的是解決變相的“約瑟夫環(huán)〞問題猴子大王。從而使繁雜的甄選工作變得明朗簡單化。同樣,這種解決問題的思想還可以運(yùn)用到其他具有類似問題的領(lǐng)域,達(dá)到一點(diǎn)窺面的效果。2、課程設(shè)計(jì)要求
針對(duì)本次猴子數(shù)為m,循環(huán)數(shù)為n的猴子選大王問題,要求如下:(1)基本要求:輸入數(shù)據(jù)m,n為整數(shù)。
(2)輸出形式:中文提醒依照m個(gè)猴子,數(shù)n個(gè)數(shù)的方法,輸出為大王的猴子幾號(hào),建立一個(gè)函數(shù)來實(shí)現(xiàn)此功能。
(3)實(shí)現(xiàn)方案:使用循環(huán)單鏈表。3、課程設(shè)計(jì)試驗(yàn)環(huán)境:C語言4、意義
培養(yǎng)我們的數(shù)據(jù)抽象能力。利用單向循環(huán)鏈表模擬此過程,輸出選出的大王編號(hào)。通過本課程設(shè)計(jì),可加深我們對(duì)鏈表的了解,對(duì)今后的學(xué)習(xí)有很大幫助。5、功能實(shí)現(xiàn)
全程序以數(shù)據(jù)結(jié)構(gòu)(C語言)中的循環(huán)單鏈表為主要的設(shè)計(jì)支柱,利用了C語言簡單緊湊、靈活便利,語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高等方面的優(yōu)點(diǎn)。循環(huán)單鏈表是單鏈表的另一種形式,其結(jié)構(gòu)特點(diǎn)是鏈表中最終一個(gè)結(jié)點(diǎn)的指針域不再是終止標(biāo)記,而是指向整個(gè)鏈表的第一個(gè)結(jié)點(diǎn),從而使鏈表形成一個(gè)環(huán),基于這樣的特點(diǎn),它適合處理具有環(huán)形結(jié)構(gòu)的數(shù)據(jù)元素序列。在程序代碼的編寫中,運(yùn)用了結(jié)構(gòu)體類型(structNode),動(dòng)態(tài)申請(qǐng)內(nèi)存空間函數(shù)malloc(),釋放動(dòng)態(tài)申請(qǐng)內(nèi)存空間函數(shù)free()等類型,同時(shí)也具有多種循環(huán)、條件語句控制程序流向,如:嵌套ifelse語句,多重for循環(huán)語句,還有鏈表中結(jié)點(diǎn)指針(p->next),從而使程序完全結(jié)構(gòu)化。這樣編寫出的完整程序代碼可以實(shí)現(xiàn)“猴子選大王〞功能,輸入猴子的數(shù)目m,循環(huán)數(shù)n,對(duì)m個(gè)猴子進(jìn)行編號(hào),通過嵌套ifelse語句,for語句,一遍一遍的循環(huán),判斷,刪除,直到只剩下最終一個(gè)猴子,即大王。這樣就可以實(shí)現(xiàn)所需的基本功能了。
二、設(shè)計(jì)過程
1、頭文件說明①#include
此程序主要以C語言為編寫語言,因此在程序中要用到系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)中的輸入,輸出函數(shù),例如:scanf()函數(shù),printf()函數(shù)。所以必需在程序開頭一行寫上#include。
例如,程序中用到的相關(guān)函數(shù)就有printf(\;scanf(\;等。
②#include
在這個(gè)程序中,用到的主要是數(shù)據(jù)結(jié)構(gòu)中的循環(huán)單鏈表方面的相關(guān)知識(shí)。我們把由一個(gè)數(shù)據(jù)元素域及一個(gè)或若干個(gè)指針域組成的結(jié)構(gòu)體稱為一個(gè)結(jié)點(diǎn)。而在單鏈表中的每個(gè)結(jié)點(diǎn),實(shí)在需要時(shí)才向系統(tǒng)申請(qǐng)的,也就是所謂的動(dòng)態(tài)內(nèi)存空間申請(qǐng)。動(dòng)態(tài)申請(qǐng)的內(nèi)存空間,當(dāng)不再需要時(shí),必需由申請(qǐng)者自己釋放。C語言提供了動(dòng)態(tài)申請(qǐng)內(nèi)存空間的函數(shù)malloc()和動(dòng)態(tài)釋放內(nèi)存空間的函數(shù)free()。這些函數(shù)都包含在頭文件malloc.h中。所以也必需在程序開頭寫上#include。例如:head=q=p=(monkey*)malloc(sizeof(monkey));
這一句就是申請(qǐng)占用字節(jié)個(gè)數(shù)為sizeof(monkey)的monkey類型的一個(gè)結(jié)點(diǎn),并且讓head,q,p三個(gè)指針同時(shí)指向這個(gè)結(jié)點(diǎn)。③typedefintDataType;
我們都知道,沒有實(shí)際含義的數(shù)據(jù)元素稱作抽象數(shù)據(jù)元素。在設(shè)計(jì)時(shí)遇到抽象數(shù)據(jù)元素,我們將用DataType表示該抽象數(shù)據(jù)元素的數(shù)據(jù)類型;而當(dāng)軟件設(shè)計(jì)問題具體確定時(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é)點(diǎn)
我們把由一個(gè)數(shù)據(jù)元素域及一個(gè)或若干個(gè)指針域組成的結(jié)構(gòu)體稱為一個(gè)結(jié)點(diǎn),其中數(shù)據(jù)域用來存放數(shù)據(jù),指針域用來構(gòu)造數(shù)據(jù)元素之間的關(guān)聯(lián)關(guān)系。
所以函數(shù)中定義了單鏈表的結(jié)構(gòu)體structNode,其中data域用來存放數(shù)據(jù)素,next域用來存放一個(gè)結(jié)點(diǎn)的指針。monkey是structNode類型的變量。且鏈表的結(jié)點(diǎn)結(jié)構(gòu)如下圖所示
datanext
3、main()函數(shù)說明voidmain(){
monkey*head,*p,*q,*s;
intm,n,i;
printf(\請(qǐng)輸入猴子的總數(shù):\scanf(\printf(\
printf(\請(qǐng)輸入周期數(shù):\scanf(\printf(\
printf(\對(duì)猴子進(jìn)行編號(hào):\\n\\n\
head=q=p=(monkey*)malloc(sizeof(monkey));for(i=1;idata=i;
p->next=q;//使鏈表循環(huán)起來p=q;
printf(\第%d位猴子的編號(hào)是:%d\\n\
}
q->next=head;head->data=m;p=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年有限責(zé)任公司股權(quán)回購合同版B版
- 2024版企業(yè)融資擔(dān)保合同類型與市場(chǎng)前景分析2篇
- 2024年度會(huì)議嘉賓邀請(qǐng)函制作合同3篇
- 2024外貿(mào)公司海外項(xiàng)目勞務(wù)派遣及管理服務(wù)合同3篇
- 2024版☆企業(yè)投資并購合同管理實(shí)務(wù)2篇
- 2024年版離婚程序指南合同版B版
- 2024版吊頂工程保險(xiǎn)責(zé)任合同2篇
- 2024年度畜牧養(yǎng)殖與農(nóng)業(yè)金融服務(wù)合作承包合同3篇
- 2024年度金融科技創(chuàng)新委托擔(dān)保合同公證3篇
- 2024年度高性能防火門窗產(chǎn)品供應(yīng)與售后服務(wù)合同2篇
- proe基礎(chǔ)教程(完整)演示文稿
- 行為金融學(xué)課后答案1至5章anawer
- 2023年報(bào)告文學(xué)研究(自考)(重點(diǎn))題庫(帶答案)
- 國軍淞滬會(huì)戰(zhàn)
- 2023年湖南體育職業(yè)學(xué)院高職單招(語文)試題庫含答案解析
- GB/T 39314-2020鋁合金石膏型鑄造通用技術(shù)導(dǎo)則
- 裝飾裝修施工質(zhì)量檢查評(píng)分表
- 非開挖施工技術(shù)講稿課件
- 單絨毛膜雙羊膜囊雙胎2022優(yōu)秀課件
- 《思想道德與法治》 課件 第四章 明確價(jià)值要求 踐行價(jià)值準(zhǔn)則
- 北師大版八年級(jí)上數(shù)學(xué)競(jìng)賽試卷
評(píng)論
0/150
提交評(píng)論