電大《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第1頁(yè)
電大《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第2頁(yè)
電大《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第3頁(yè)
電大《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第4頁(yè)
電大《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)形成性考核冊(cè)實(shí)驗(yàn)名稱:實(shí)驗(yàn)一線性表線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) TOC o 1-5 h z 【 問(wèn)題描述】某項(xiàng)比賽中,評(píng)委們給某參賽者的評(píng)分信息存儲(chǔ)在一個(gè)帶頭結(jié)點(diǎn)的單向鏈表中,編寫程序:(1 )顯示在評(píng)分中給出最高分和最低分的評(píng)委的有關(guān)信息(姓名、年齡、所給分?jǐn)?shù)等)。在鏈表中刪除一個(gè)最高分和一個(gè)最低分的結(jié)點(diǎn)。計(jì)算該參賽者去掉一個(gè)最高分和一個(gè)最低分后的平均成績(jī)?!?基本要求】)建立一個(gè)評(píng)委打分的單向鏈表;顯示刪除相關(guān)結(jié)點(diǎn)后的鏈表信息。顯示要求的結(jié)果?!?實(shí)驗(yàn)步驟】)運(yùn)行PC 中的 Microsoft Visual C+ 程序,點(diǎn)擊“文件”-“新建”-對(duì)話窗口中“文件” -c+ Source Fi

2、le” -在“文件名”中輸入-在“位置”中選擇儲(chǔ)存路徑為“桌面” -“確定”,3) 輸入程序代碼,程序代碼如下:#include #include #include #include #include #define NULL 0,:,:姓 妁 叁A- S :i.-n8/ s 1鬻分,打時(shí),J甲打雯石名苣君名 劣蹇燧姓101 b ,:,:姓 妁 叁A- S :i.-n8/ s 1鬻分,打時(shí),J甲打雯石名苣君名 劣蹇燧姓101 b d *二 IE r-1ft代齦蹤娃唯 專A 計(jì)渾 我的 去1) ,口信 等十 faE .一 m 口二三c dw- 5V 9V -b. : t z 狗去名名名 +4-二

3、二一最悵分后的白效片委成績(jī):孫葉舟0日M=W*尸亍升二W九W0ge=n; ame);#define PWRS 5 2.2fprintf(性別 0女 1 男:);scanf(%d,&mi.sex);printf(年齡:);scanf(%d”,&mi.age);printf(n);return 1;int calc(STD *m,STD *n,STD *r,float &Fage,float &Mage) int i,j=1,k=1;n0.age=r0.age=0;for( i=1;i=m0.age;i+) if(mi.sex=0)strcpy(,);nj.sex=mi

4、.sex; nj.age=mi.age;n0.age+; Mage+=mi.age;j+;elsestrcpy(,);rk.sex=mi.sex; rk.age=mi.age;r0.age+;Fage+=mi.age;k+;Mage=Mage/n0.age; Fage=Fage/r0.age;cout女生的平均年齡是:Mage男生的平均年齡是:Fageendl;return 1;void print(STD *m)for(int i=1;i i 工工也配年年年4 bL工釐年仟T=血密烈一噤華經(jīng)內(nèi)AB0B0-n-二 B0ST S 因ng v 4 k-uk g v WI

5、C1口/ c t山?ELIK營(yíng)爐比 yfl - * * - i B 七 cfldp火 1rib G d dpr燈 號(hào)Hst:cF:d的名 ,C 日 a” 此 u a d drll bcE d d . =Jb人名sdsdfi生名名名名名窒名毒生名名半在券-hex在凈”加實(shí)驗(yàn)結(jié)束。實(shí)驗(yàn)結(jié)論:線性表采用鏈?zhǔn)酱鎯?chǔ)(鏈表)時(shí):以結(jié)構(gòu)變量存儲(chǔ)結(jié)點(diǎn),動(dòng)態(tài)生成結(jié)點(diǎn),以指針鏈接結(jié)點(diǎn),能有效利用存儲(chǔ)空間,插入刪除方便,但不能隨機(jī)訪問(wèn).單向鏈表可從某結(jié)點(diǎn)訪問(wèn)到后繼結(jié)點(diǎn)。 單向鏈表操作的關(guān)鍵步驟:建立鏈表的頭插法:指針變量p開辟單元,生成結(jié)點(diǎn),指針變量q始終指向頭結(jié)點(diǎn),操作為:p-next=q-next; q-nex

6、t=p;尾插法:指針變量 q始終指向尾結(jié)點(diǎn),p指針開辟單元,生成結(jié) 點(diǎn): q-next=p; q=p;插入:p所指向結(jié)點(diǎn)的后面插入新結(jié)點(diǎn)s所指結(jié)點(diǎn) s-next=p-next; p-next=s;刪除:p, q指向相鄰結(jié)點(diǎn),q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的后繼,刪除 q所指結(jié)點(diǎn),p-next=q-next;遍歷:p=p-next;實(shí)驗(yàn)名稱:實(shí)驗(yàn)二 棧、列隊(duì)、遞歸程序設(shè)計(jì)棧和隊(duì)列的基本操作【問(wèn)題描述】編寫一個(gè)算法,輸出指定棧中的棧底元素,并使得原棧中的元素倒置?!净疽蟆?1)正確理解棧的先進(jìn)后出的操作特點(diǎn),建立初始棧,通過(guò)相關(guān)操作顯示棧底元素。(2)程序中要體現(xiàn)出建棧過(guò)程和取出棧底元素后恢復(fù)棧的入棧

7、過(guò)程,按堆棧的操作規(guī)則打印結(jié)果棧中的元素?!緦?shí)驗(yàn)步驟;】運(yùn)行 PC 中的 Microsoft Visual C+ 程序,點(diǎn)擊“文件” 一 “新建”一對(duì)話窗口中“文件” 一 “c+ Source File” 一在“文件名”中輸入一在“位置”中選擇儲(chǔ)存路徑為“桌面” 一 “確定”,輸入程序代碼,程序代碼如下:#include #include #define MaxSize 100typedef char ElemType;typedef structElemType dataMaxSize; int top;初始化棉4T6環(huán)戔為非岑4T6環(huán)戔為非岑_h幡質(zhì)到棧底兀素:C d 0 b a 奘底元素

8、為:我k”出長(zhǎng)/人隊(duì)列 性為空.隊(duì)序列w deba出隊(duì)列,人設(shè)兩以整為北空.前歹然空 從梭質(zhì)到模底元素舊 t dany key to cuntinme珂羌要排列的數(shù)字:命位訓(xùn)低位逐次觸出各位教室;2 2 4 5 6 區(qū)橘位式I高位逐次輸出珞檢數(shù)36 5 4 3 2Press any key to continue.lbdhiejicfr Piess any key to continueameiamex=s0.avg ;while(lowsmid.avg )hight=mid-1;elselow=mid+1;for(k=0;klow-1;k+)strcpy(,sk+1.name)

9、;sk.avg =sk+1.avg ;printf(%d,low);strcpy( ,y);slow-1.avg =x;void main()Struct student aN=caozh”,96,cheng”,95,zhao,93,wang,92,chen,91;struct student stuN;int i;for(i=0;iN;i+)stui+1=ai;printf(初始%d位同學(xué)的信息表n,MAX);printf(排名姓名平均分?jǐn)?shù)n);for(i=1;i=N;i+)printf(%d:%6s%3.2fn,i,,stui.avg);printf

10、(n);printf(n);printf(請(qǐng)輸入學(xué)生的姓名:);scanf(%s, );printf(n);printf(請(qǐng)輸入平均成績(jī):);scanf(%f,&stu0.avg );printf(n);insort(stu,N);printf(折半排序后同學(xué)的信息表n,MAX);printf(排名姓名平均分?jǐn)?shù)n);for(i=0;i=N;i+) printf(%d: %6s %3.2fn,i+1,,stui.avg); printf(n);程序運(yùn)行結(jié)果如下實(shí)驗(yàn)二叉排序樹的建立設(shè)計(jì)程序代碼如下#include#include#define MAX 5type

11、def struct Bnodeint key;struct Bnode *left;struct Bnode *right;Bnode;Bnode * btInsert(int x,Bnode *root);void Inorder(Bnode *root);void main()int i;int aMAX=60,40,70,20,80;Bnode * root=NULL;printf( 按關(guān)鍵字序列建立二叉排序樹n);for(i=0;iMAX;i+) printf(%d ,ai);printf(n);for(i=0;ikey=x;p-right=p-left=NULL;if(root=N

12、ULL) root=p; return p; q=root;while(flag=0)if(q-keyx)if(q-left!=NULL)q=q-left;elseq-left=p;flag=1;elseif(q-right!=NULL) q=q-right;elseq-right=p;flag=1;return root;void Inorder(Bnode *root)if(root!=NULL) Inorder(root-left);printf(%d ,root-key);Inorder(root-right);程序運(yùn)行結(jié)果如下:實(shí)驗(yàn)名稱:實(shí)驗(yàn)六排序泡沫法排序的改進(jìn)算法 TOC o 1

13、-5 h z 【 問(wèn)題描述】某班學(xué)生成績(jī)信息表中每個(gè)學(xué)生的記錄包括各門功課的成績(jī)和平均成績(jī),以及按平均成績(jī)的排名等信息,要求從鍵盤輸入每個(gè)學(xué)生各門功課的成績(jī),計(jì)算出平均成績(jī),按平均成績(jī)由高到低對(duì)信息的記錄重新排序,并定出每位同學(xué)的名次,打印排序后的信息表。【 基本要求】( 4)建立學(xué)生成績(jī)信息表,計(jì)算平均成績(jī)。( 5)用泡沫法對(duì)平均成績(jī)排序,程序中要求一旦序列被排好序就結(jié)束相應(yīng)排序操作?!?測(cè)試數(shù)據(jù)】自行設(shè)計(jì)【 實(shí)驗(yàn)提示】( 1 )用結(jié)構(gòu)數(shù)組存放學(xué)生成績(jī)信息表。( 2)在某趟泡沫中沒(méi)有發(fā)生元素間的交換則說(shuō)明已排好序堆排序【 問(wèn)題描述】閱讀篩選和建堆的程序,針對(duì)某一個(gè)待排序的序列,通過(guò)人工跟蹤程

14、序的執(zhí)行,完成排序的全過(guò)程【 基本要求】(1 )掌握建堆、篩選的基本原理和算法步驟。(2)寫出主函數(shù),試運(yùn)行堆排序的程序。(3)掌握堆排序的算法程序,能針對(duì)實(shí)例按步驟人工完成建堆和排序的過(guò)程?!?測(cè)試數(shù)據(jù)】自行設(shè)計(jì)。【 實(shí)驗(yàn)提示】( 1 ) 篩選是建堆的基本算法。把要排序序列看成一棵完全二叉樹,用循環(huán)方式從最后一個(gè)非葉結(jié)(設(shè)序號(hào)為k)開始,逐次對(duì)序號(hào)為k, k-1,的結(jié)點(diǎn),直至根結(jié)點(diǎn)調(diào)用篩選算法,完成建堆。3)不斷通過(guò)堆頂元素與堆中最后一個(gè)元素的交換并篩選,完成排序。實(shí)驗(yàn)報(bào)告內(nèi)容:實(shí)驗(yàn) 冒泡法排序的改進(jìn)設(shè)計(jì)程序代碼如下:#include#include#define MAX 3struct s

15、tudentchar name10;float cs;float ms;float es;float avg;void sort(struct student s口,int n);void sort(struct student s口,int n) struct student temp;int i,j;for(i=1; in; i+)for(j=0; jn-i; j+)if(sj.avgsj+1.avg )temp = sj;sj = sj+1;sj+1 = temp;void main() struct student stuMAX;int i;printf(請(qǐng)輸入%d位同學(xué)的姓名和各科成

16、績(jī)n,MAX);for(i=0;iMAX;i+)printf(請(qǐng)輸入第 %d位學(xué)生的姓名:,i+1);scanf(%s,);printf(n);printf(語(yǔ)文分?jǐn)?shù):);scanf(%f,&stui.cs);printf(n);printf(數(shù)學(xué)分?jǐn)?shù):);scanf(%f,&stui.ms);printf(n);printf(英語(yǔ)分?jǐn)?shù):);scanf(%f,&stui.es);printf(n);stui.avg=(stui.cs+stui.ms+stui.es)/3;sort(stu,MAX);printf(排名姓名語(yǔ)文 數(shù)學(xué) 外語(yǔ)平均分?jǐn)?shù)n);for(i=0;i y y

17、 t u cuiii IL實(shí)驗(yàn)堆排序設(shè)計(jì)程序代碼如下:#include#define N 8 struct NODEint date;;void heapshift(struct NODE a口,int i,int n)struct NODE temp;int j;temp=ai;j=2*i;while(jn)if(j+1aj+1.date ) j+;if aj.date ) ai=aj;i=j;j=2*i;else break;ai=temp;void heapsort(struct NODE a口,int n)int i;struct NODE temp;for(i=n/2;i=1;i-)heapshift(a,i,n);for(i=n;i1;i-)temp=a1;a1=ai;ai=temp;heapshift(a,1,i-1);vo

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論