下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)用文檔《數(shù)據(jù)結(jié)構(gòu)》課程實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)2線性表)學(xué)生姓名學(xué)號(hào)班級(jí)指導(dǎo)老師實(shí)驗(yàn)名稱實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)概述實(shí)驗(yàn)?zāi)康模赫莆站€性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及基本操作,深入了解順序表的基本特性。實(shí)驗(yàn)要求:(1)建立一個(gè)評(píng)委打分的單向鏈表。(2)顯示刪除相關(guān)結(jié)點(diǎn)后的鏈表信息。(3)顯示要求的結(jié)果。實(shí)驗(yàn)基本原理:某項(xiàng)比賽中,評(píng)委們給某參賽者的評(píng)分信息存儲(chǔ)在一個(gè)帶頭結(jié)點(diǎn)的單向鏈表中,編寫程序:(1)顯示在評(píng)分中給出最高分和最低分的評(píng)委的有關(guān)信息(姓名、年齡、所給分?jǐn)?shù)等)。(2)在鏈表中刪除一個(gè)最高分和一個(gè)最低分的結(jié)點(diǎn)。(3)計(jì)算該參賽者去掉一個(gè)最高分和一個(gè)最低分后的平均成績(jī)。實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)設(shè)計(jì)思路、步驟和方法等:設(shè)計(jì)思路(1)評(píng)委信息結(jié)點(diǎn)用結(jié)構(gòu)變量存儲(chǔ),包含三個(gè)成員項(xiàng),即姓名、年齡、評(píng)分。結(jié)構(gòu)類型定義如下://定義評(píng)委信息structpw{charname[8];//姓名shortage;//年齡floatscore;//評(píng)分};(2)用頭插法或尾插法建立帶頭結(jié)點(diǎn)的單鏈表,本實(shí)驗(yàn)采用尾插法。(3)遍歷鏈表并逐次比較求最高分和最低分。(4)在鏈表中物理刪除,即實(shí)際刪除最高分和最低分結(jié)點(diǎn);也可以進(jìn)行邏輯刪除,即在被刪結(jié)點(diǎn)的數(shù)據(jù)域設(shè)置一個(gè)刪除標(biāo)記,本實(shí)驗(yàn)采用物理刪除的方法。(5)遍歷鏈表,累加求和,計(jì)算總分及平均分,并輸出相關(guān)信息。完整程序//實(shí)驗(yàn)1.1線性表的鏈接存儲(chǔ)結(jié)構(gòu)#include#include#include#definePWRS5//定義評(píng)委人數(shù)//定義評(píng)委信息structpw{charname[8];//姓名shortage;//年齡floatscore;//評(píng)分};typedefstructpwPW;//定義鏈表結(jié)點(diǎn)structnode{PWdata;structnode*next;};typedefstructnodeNODE;NODE*create(intn);//建立單鏈表voidinput(NODE*s,inti);//輸入第i個(gè)評(píng)委信息voidoutput(NODE*s);//輸出評(píng)委信息voidtraverse(NODE*head);//遍歷鏈表voidcalc(NODE*head);//計(jì)算及數(shù)據(jù)處理voidmain(){NODE*head=NULL;head=create(PWRS);//建立評(píng)委信息單鏈表printf("\n所有評(píng)委的評(píng)分信息如下:\n");traverse(head);//輸出所有評(píng)委的評(píng)分信息calc(head);//計(jì)算成績(jī)printf("該參賽者去掉一個(gè)最高分和一個(gè)最低分后的有效評(píng)委的評(píng)分信息如下:\n");traverse(head);//輸出有效評(píng)委的評(píng)分信息}//尾插法建立帶頭結(jié)點(diǎn)的單鏈表NODE*create(intn){NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=p;q=p;p->next=NULL;for(i=1;i<=n;i++){p=(NODE*)malloc(sizeof(NODE));input(p,i);p->next=NULL;q->next=p;q=p;}return(head);}//輸入評(píng)委信息,包括姓名、年齡和評(píng)分voidinput(NODE*s,inti){printf("請(qǐng)輸入第%d個(gè)評(píng)委的姓名、年齡和評(píng)分:",i);scanf("%s%d%f",&s->,&s->data.age,&s->data.score);}//輸出評(píng)委信息voidoutput(NODE*s){printf("評(píng)委姓名:%6s年齡:%d評(píng)分:%6.2f\n",s->,s->data.age,s->data.score);}//遍歷鏈表,輸出所有評(píng)委的評(píng)分信息voidtraverse(NODE*head){NODE*p=head->next;//指向第一個(gè)結(jié)點(diǎn)while(p!=NULL){output(p);p=p->next;}printf("\n");}//輸出最高分及最低分評(píng)委信息,刪除最高分及最低分結(jié)點(diǎn)并計(jì)算參賽者的最后平均分voidcalc(NODE*head){NODE*q,*p,*pmin,*pmax;floatsum=0;//總分floatave=0;//平均分//查找最高分和最低分并計(jì)算總分p=head->next;pmin=pmax=p;while(p!=NULL){sum+=p->data.score;if(p->data.score>pmax->data.score)pmax=p;//pmax指向最高分結(jié)點(diǎn)if(p->data.scoredata.score)pmin=p;//pmin指向最低分結(jié)點(diǎn)p=p->next;}//輸出最高分及最低分評(píng)委信息printf("給出最高分的評(píng)委姓名:%6s年齡:%d評(píng)分:%6.2f\n",pmax->,pmax->data.age,pmax->data.score);printf("給出最低分的評(píng)委姓名:%6s年齡:%d評(píng)分:%6.2f\n",pmin->,pmin->data.age,pmin->data.score);printf("\n");//去掉一個(gè)最高分和一個(gè)最低分,計(jì)算并輸出參賽者的最后平均分sum-=pmax->data.score;sum-=pmin->data.score;ave=sum/(PWRS-2);printf("該參賽者去掉一個(gè)最高分和一個(gè)最低分后的平均得分為:%6.2f\n",ave);printf("\n");//在鏈表中刪除最高分和最低分結(jié)點(diǎn)for(q=head,p=head->next;p!=NULL;q=p,p=p->next){if(p==pmin){q->next=p->next;p=q;}//刪除最低分結(jié)點(diǎn)if(p==pmax){q->next=p->next;p=q;}//刪除最高分結(jié)點(diǎn)}}實(shí)驗(yàn)過(guò)程(實(shí)驗(yàn)中涉及的記錄、數(shù)據(jù)、分析):1)建立鏈表的頭插法:指針變量p開辟單元,生成結(jié)點(diǎn),指針變量q始終指向頭結(jié)點(diǎn);操作為:p->next=q->next;q->next=p;2)建立鏈表的尾插法:指針變量p開辟單元,生成結(jié)點(diǎn),指針變量q始終指向尾結(jié)點(diǎn);操作為:q->next=p;q=p;3)插入:p結(jié)點(diǎn)的后面插入新結(jié)點(diǎn)s;操作為:s->next=p->next;p->next=s;4)刪除:p,q指向相鄰結(jié)點(diǎn),q結(jié)點(diǎn)是p結(jié)點(diǎn)的后繼,刪除q結(jié)點(diǎn);操作為:p->next=q->next;5)遍歷:p指向后繼結(jié)點(diǎn);操作為:p=p->next;實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)小結(jié)實(shí)驗(yàn)的心得體會(huì):通過(guò)對(duì)評(píng)委系統(tǒng)案例的學(xué)習(xí),更深入地理解線性表的知識(shí)和應(yīng)用。實(shí)驗(yàn)思考:(1)線性表采用鏈?zhǔn)酱鎯?chǔ)(鏈表)時(shí),用結(jié)構(gòu)變量存儲(chǔ)結(jié)點(diǎn),動(dòng)態(tài)生成結(jié)點(diǎn),用指針鏈接結(jié)點(diǎn),能有效利用存儲(chǔ)空間
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《計(jì)算機(jī)公共基礎(chǔ)》課件
- 2025年度南京辦公室裝修項(xiàng)目造價(jià)咨詢合同3篇
- 2025年度燃?xì)庑袠I(yè)員工離職經(jīng)濟(jì)補(bǔ)償及爭(zhēng)議處理合同-@-1
- 課題申報(bào)參考:逆向跨國(guó)并購(gòu)后企業(yè)內(nèi)部控制合規(guī)管理模式構(gòu)建研究
- 二零二五年度國(guó)際能源資源合作合同4篇
- 課題申報(bào)參考:面向社交網(wǎng)絡(luò)大數(shù)據(jù)的沂蒙精神傳播態(tài)勢(shì)及優(yōu)化路徑研究
- 2025版精密機(jī)床購(gòu)置及售后服務(wù)合同2篇
- 二零二五年度醫(yī)療健康商標(biāo)轉(zhuǎn)讓與知識(shí)產(chǎn)權(quán)合同
- 2025年度個(gè)人與公司間技術(shù)秘密保護(hù)協(xié)議
- 2025版內(nèi)衣品牌跨界合作營(yíng)銷合同4篇
- 如何提高售后服務(wù)的快速響應(yīng)能力
- 北師大版 2024-2025學(xué)年四年級(jí)數(shù)學(xué)上冊(cè)典型例題系列第三單元:行程問(wèn)題“拓展型”專項(xiàng)練習(xí)(原卷版+解析)
- 2023年譯林版英語(yǔ)五年級(jí)下冊(cè)Units-1-2單元測(cè)試卷-含答案
- Unit-3-Reading-and-thinking課文詳解課件-高中英語(yǔ)人教版必修第二冊(cè)
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運(yùn)行管理規(guī)程
- 種子輪投資協(xié)議
- 員工工資條模板
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)課件
- 華為攜手深圳國(guó)際會(huì)展中心創(chuàng)建世界一流展館
評(píng)論
0/150
提交評(píng)論