電大數(shù)據(jù)結構課程實驗報告_第1頁
電大數(shù)據(jù)結構課程實驗報告_第2頁
電大數(shù)據(jù)結構課程實驗報告_第3頁
電大數(shù)據(jù)結構課程實驗報告_第4頁
電大數(shù)據(jù)結構課程實驗報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結構課程實驗報告一線性表1、線性表的鏈式存儲結構【問題描述】某項比賽中,評委們給某參賽者的評分信息存儲在一個帶頭結點的單向鏈表中,編寫程序:(1) 顯示在評分中給出最高分和最低分的評委的有關信息(姓名、年齡、所給分數(shù)等)。(2) 在鏈表中刪除一個最高分和一個最低分的結點。(3) 計算該參賽者去掉一個最高分和一個最低分后的平均成績?!净疽蟆浚?) 建立一個評委打分的單向鏈表;(2) 顯示刪除相關結點后的鏈表信息。(3) 顯示要求的結果?!緦嶒灢襟E】(1) 運行PC中的MicrosoftVisualC++6.0程序,(2) 點擊“文件”f“新建”f對話窗口中“文件”f"c++SourceFile"-在“文件名”中輸入“sy1-1.cpp”f在“位置”中選擇儲存路徑為“桌面”一“確定”,(3) 輸入程序代碼,程序代碼如下#include#include#include#include#include#defineNUL0#definePWRS5structpw(charname[6];floatscore;intage;};typedefstructpwPW;structnode(structpwdata;structnode*next;};typedefstructnodeNODE;NODE*create(intm);intcalc(NODE*h);voidprint(NODE*h);voidinput(NODE*s);voidoutput(NODE*s);voidmain()(NODE*head;floatave=0;floatsum=0;head=create(PWRS);printf("所有評委打分信息如下:\n");print(head);calc(head);printf("\n去掉1個最高分和1個最低分后的有效評委成績?nèi)缦?\n");print(head);}voidinput(NODE*s)(printf("請輸入評委的姓名:");scanf(〃%S〃,&s->/doc/9851b6a0f524ccbff1218455.html);printf("年齡:");scanf("%d",&s->data.age);printf("打分:");scanf("%f",&s->data.score);printf(〃\n〃);}voidoutput(NODE*s)(printf("評委姓名:%8s,年齡:%d,打分:%2.2f\n〃,s->http:///doc/9851b6a0f524ccbff1218455.html,s->data.age,s->data.score);}NODE*create(intm)(NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=p;q=p;p->next=NUL;for(i=1;i<=m;i++)(p=(NODE*)malloc(sizeof(NODE));input(p);p->next=NUL;q->next=p;q=p;}return(head);}voidprint(NODE*h)(inti;for(i=1;i<=PWRS&&h->next!二NUL;i++)(h=h->next;output(h);}}intcalc(NODE*h)(NODE*q,*p,*pmin,*pmax;floatsum=0;floatave=0;p=h->next;pmin二pmax=p;//設置初始值sum+=p->data.score;p=p->next;for(;p!=NUL;p=p->next)(if(p->data.score>pmax->data.score)pmax=p;if(p->data.scoredata.score)pmin=p;sum+=p->data.score;}printf("給出最高分的評委姓名:%s年齡:%d分值:%f”,pmax->/doc/9851b6a0f524ccbff1218455.html,pmax->data.age,pmax->data.score);printf("\n");printf("給出最低分的評委姓名:%s年齡:%d分值:%f”,pmin->/doc/9851b6a0f524ccbff1218455.html,pmin->data.age,pmin->data.score);printf("\n\n");sum-=pmin->data.score;sum-=pmax->data.score;for(q=h,p=h->next;p!二NUL;q=p,p=p->next)(if(p==pmin){q->next=p->next;p=q;}if(p==pmax)(q->next=p->next;p=q;}}ave=sum/(PWRS-2);printf("該選手的最后得分是:%f”,ave);return1;}運行結果如下:C:\VIirD0TS\sys-teA32\cMd_exe1—xnJ-nJ-—lx

r-JJ7J74q.7.

23505

23243齡齡齡齡齡.?年年年年年平2021入----費分請年打的的分1—xnJ-nJ-—lx

r-JJ7J74q.7.

23505

23243齡齡齡齡齡.?年年年年年平2021入----費分請年打的的分委委打 評408評359未女名名名名名A--入.--霉姓姓姓姓馨分費分宴至i萋ws所評評評評評ft?分分2522■■■■齡齡年年aC■■■■名名姓姓評評分分ir取出出給給分分分3孑令令令3/2W-止154止ly8_低年年年nlR尸1廣曰符bde的岑名名名

手1-f姓姓姓

選堇荃K

該去評評評Ppessanykeytocontinue2、線性表的順序存儲結構【問題描述】用順序表A記錄學生的信息,編寫程序:將A表分解成兩個順序表B和C,使C表中含原A表中性別為男性的學生,B表中含原表中性別為女性的學生,要求學生的次序與原A表中相同。分別求男生和女生的平均年齡【基本要求】建立學生信息的順序表A。顯示B表和C表中的相關信息。顯示計算結果?!緦嶒灢襟E;】運行PC中的MicrosoftVisualC++6.0程序,點擊“文件”f“新建”f對話窗口中“文件”f"c++SourceFile"-在“文件名”中輸入“sy1-2.cpp”f在“位置”中選擇儲存路徑為“桌面”一“確定”,(3)輸入程序代碼,程序代碼如下:#include"stdio.h”#include"stdlib.h”#include"malloc.h"#include"iostream.h”#include"conio.h"#include"string.h”structstudent(charname[8];intsex;//0女:1:男intage;};typedefstructstudentSTD;intcreate(STD*m);intcalc(STD*m,STD*n,STD*r,float&Fage,float&Mage);voidprint(STD*m);constintMAX=100;//定義人數(shù)voidmain()(STDA[MAX];STDB[MAX];STDC[MAX];floatage1=0,age2=0;//age1男age2女create(A);printf("學生總表A記錄如下:\n");print(A);calc(A,B,C,age1,age2);printf("\n\n女生名冊B記錄如下:\n");print(B);printf("\n男生名冊C記錄如下:\n");print(C);}intcreate(STD*m)(intn;printf(〃請輸入班級總人數(shù):");scanf("%d",&n);m[0].age=n;//置順序表長度printf("請輸入學生信息:\n\n");inti;for(i=1;i<=n;i++)(printf("第%d位學生信息:\n",i);printf("姓名:");scanf(〃%s〃,&m[i].name);printf("性別0女1男:");scanf("%d",&m[i].sex);printf("年齡:");scanf("%d",&m[i].age);printf(〃\n〃);}return1;}intcalc(STD*m,STD*n,STD*r,float&Fage,float&Mage)(inti,j=1,k=1;n[0].age=r[0].age=0;for(i=1;i<=m[0].age;i++)(if(m[i].sex==0)(strcpy(n[j].name,m[i].name);n[j].sex=m[i].sex;n[j].age=m[i].age;n[0].age++;Mage+=m[i].age;j++;}else(strcpy(r[k].name,m[i].name);r[k].sex=m[i].sex;r[k].age=m[i].age;r[0].age++;Fage+=m[i].age;k++;}}Mage二Mage/n[0].age;Fage二Fage/r[0].age;printf("女生的平均年齡是:%f,男生的平均年齡是:%f”,Mage,Fage);return1;}voidprint(STD*m)(for(inti=1;i<=m[0].age;i++)(printf(〃姓名:%3s,性別(0女1男):%d,年齡:%d\n”,m[i].name,m[i].sex,m[i].age);}}運行結果如下:

第坪學生信息:|g1第2位學生信息,茬嬴搭男"年齡:30第3位學生信息=姓名:c性腫女1男:i年齡:陰第4位學生信息=姓名:d性劇政1男;0年副21希簍學生信息=生名雷名名生

學姓售姓蔓第坪學生信息:|g1第2位學生信息,茬嬴搭男"年齡:30第3位學生信息=姓名:c性腫女1男:i年齡:陰第4位學生信息=姓名:d性劇政1男;0年副21希簍學生信息=生名雷名名生

學姓售姓蔓t;A【j加c,d.e,

總 mnmpmr^mnmn.■寫王E『---g與一耳_-■011X112T=女女女女女..k<<<^IZL性性性葉平的年年年年年日 踮齡噫2齡沮齡:24,男生的平均年齡是:23.S039OS女生名冊瓦己錄如下=姓名:b,性別W女1姓名:L性別E女1>:G,年齡:河>:0,年磅*1曩姓姓illy:女女女一00rt--i-cc財別別別有性性悴c?*卅ace生容套:1,年齡:23>:1,年韶^24Pi'bsea.ny><eytccointinns3、實驗結論實驗結論:線性表采用鏈式存儲(鏈表)時:以結構變量存儲結點,動態(tài)生成結點,以指針鏈接結點,能有效利用存儲空間,插入刪除方便,但不能隨機訪問.單向鏈表可從某結點訪問到后繼結點。單向鏈表操作的關鍵步驟:建立

溫馨提示

  • 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

提交評論