淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實(shí)驗(yàn)報(bào)告_第1頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實(shí)驗(yàn)報(bào)告_第2頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實(shí)驗(yàn)報(bào)告_第3頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實(shí)驗(yàn)報(bào)告_第4頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、淮海工學(xué)院計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)報(bào)告書課程名: 數(shù)據(jù)結(jié)構(gòu) 題 目: 線性數(shù)據(jù)結(jié)構(gòu)試驗(yàn) 班 級(jí): 軟嵌151 學(xué) 號(hào): 2015123352 姓 名: 韓吉 評(píng)語:成績: 指導(dǎo)教師: 批閱時(shí)間: 年 月 日線性表實(shí)驗(yàn)報(bào)告要求1目的與要求:1)掌握線性表數(shù)據(jù)結(jié)構(gòu)的基本概念和抽象數(shù)據(jù)類型描述;2)熟練掌握線性表數(shù)據(jù)結(jié)構(gòu)的順序和鏈?zhǔn)酱鎯?chǔ)存表示;3)熟練掌握線性表順序存儲(chǔ)結(jié)構(gòu)的基本操作算法實(shí)現(xiàn); 4)熟練掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本操作算法實(shí)現(xiàn);5)掌握線性表在實(shí)際問題中的應(yīng)用和基本編程技巧;6)按照實(shí)驗(yàn)題目要求獨(dú)立正確地完成實(shí)驗(yàn)內(nèi)容(提交程序清單及相關(guān)實(shí)驗(yàn)數(shù)據(jù)與運(yùn)行結(jié)果);7)按照?qǐng)?bào)告格式和內(nèi)容要求,認(rèn)真

2、書寫實(shí)驗(yàn)報(bào)告,并于下周周二前統(tǒng)一提交實(shí)驗(yàn)報(bào)告電子版文檔(每次實(shí)驗(yàn)全體同學(xué)必須提交實(shí)驗(yàn)報(bào)告電子版,實(shí)驗(yàn)報(bào)告文檔文件命名方式:姓名+學(xué)號(hào)+數(shù)據(jù)結(jié)構(gòu)第x次實(shí)驗(yàn)報(bào)告)提交給學(xué)委,而后由學(xué)委以班為單位統(tǒng)一打包(包文件名為:軟件14x班-數(shù)據(jù)結(jié)構(gòu)第x次實(shí)驗(yàn)報(bào)告)用郵件發(fā)給老師;提交紙質(zhì)報(bào)告(每班每次收5份,學(xué)委安排,保證每學(xué)期每個(gè)同學(xué)至少提交一次)一起提交給老師。每次提交電子文檔時(shí),學(xué)委務(wù)必統(tǒng)計(jì)和上報(bào)未交報(bào)告人數(shù)和具體姓名;凡逾期不交報(bào)告者,不再推遲提交,一律按照曠交處理。8)積極開展實(shí)驗(yàn)組組內(nèi)交流和輔導(dǎo),嚴(yán)禁直接復(fù)制和剽竊他人實(shí)驗(yàn)成果,一旦發(fā)現(xiàn)嚴(yán)肅處理;9)上實(shí)驗(yàn)課前,要求每個(gè)同學(xué)基本寫好程序,并存儲(chǔ)在

3、自己的u盤上,用于實(shí)驗(yàn)課堂操作時(shí)調(diào)試和運(yùn)行。2實(shí)驗(yàn)內(nèi)容或題目(在一個(gè)主程序中實(shí)現(xiàn)全部題目內(nèi)容)一、順序表的基本操作實(shí)現(xiàn)實(shí)驗(yàn)要求:數(shù)據(jù)元素類型elemtype取整型int。按照順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)創(chuàng)建任意整數(shù)線性表(即線性表的元素值隨機(jī)在鍵盤上輸入)的順序存儲(chǔ)結(jié)構(gòu)(即順序表),長度限定在25之內(nèi);2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個(gè)元素,并返回其值;4)在順序表第i個(gè)元素之前插入一已知元素;5)在順序表中刪除第i個(gè)元素;6)求順序表中所有元素值(整數(shù))之和;二、鏈表(帶頭結(jié)點(diǎn))基本操作實(shí)驗(yàn)要求:數(shù)據(jù)元素類型elemtype取字符型cha

4、r。按照動(dòng)態(tài)單鏈表結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)按照頭插法或尾插法創(chuàng)建一個(gè)帶頭結(jié)點(diǎn)的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長度限定在10之內(nèi);2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結(jié)點(diǎn)順序);3)在鏈表中查找第i個(gè)元素,i合法返回元素值,否則,返回false;4)在鏈表中查找與一已知字符相同的第一個(gè)結(jié)點(diǎn),有則返回true,否則,返回false;5)在鏈表中第i個(gè)結(jié)點(diǎn)之前插入一個(gè)新結(jié)點(diǎn);6)在線性表中刪除第i個(gè)結(jié)點(diǎn);7)計(jì)算鏈表的長度。3實(shí)驗(yàn)步驟與源程序#includestdio.h#includestdlib.h#includemalloc.h#define ok

5、 1#define error 0#define ture 1#define false 0#define elemtype int#define maxsize 25typedef structelemtype elemmaxsize;int last;seqlist;int getdata(seqlist *l,int i)return l-elemi-1;int inslist(seqlist *l,int i,elemtype e)int k;if(il-last+2)printf(插入位置i值不合法!);return(error);if(l-last=maxsize-1)printf

6、(超出了鏈表的最大范圍,無法插入無法插入!);return(error);for(k=l-last;k=i-1;k-)l-elemk+1=l-elemk;l-elemi-1=e;l-last+;return(ok);int dellist(seqlist *l,int i,elemtype *e)int k;if(il-last+1)printf(刪除位置不在表中,不合法!);return(error);*e=l-elemi-1;for(k=i;klast;k+)l-elemk-1=l-elemk;l-last-;return(ok);int sumlist(seqlist *l)int su

7、m=0;for(int i=0;ilast;i+)sum+=l-elemi;return(sum);void main()seqlist *l;int p;/要查找的位置int *q;int r;/線性表的長度int t;/插入的元素int s;/刪除的位置int w;/要插入的位置int i;l=(seqlist *)malloc(sizeof(seqlist);q=(int*)malloc(sizeof(int);printf(請(qǐng)輸入線性表的長度:);scanf(%d,&r);l-last=r-1;printf(請(qǐng)輸入線性表中的各元素值:n);for(i=0;ilast;i+)scanf(

8、%d,&l-elemi);printf(線性表中所有元素之和是:%dn,sumlist(l);printf(請(qǐng)輸入要查找的位置:);scanf(%d,&p); printf(查找的元素是:%dn,getdata(l,p);printf(請(qǐng)輸入要插入的位置:);scanf(%d,&w);printf(插入的元素是:);scanf(%d,&t);inslist(l,p,t);printf(插入后的線性表:n);for(i=0;ilast;i+)printf(%d ,l-elemi);printf(n);printf(請(qǐng)輸入要?jiǎng)h除的位置:);scanf(%d,&s);dellist(l,s,q);p

9、rintf(刪除的元素值是:%dn,*q);printf(刪除后的線性表:n);for(i=0;ilast;i+)printf(%d ,l-elemi);/ 數(shù)據(jù)結(jié)構(gòu)第二題.cpp : defines the entry point for the console application./#include #include #include #define ok 1#define error 0#define ture 1#define false 0typedef char elemtype;typedef struct nodeelemtype data;struct node*next

10、;node,*linklist;void createtail(linklist l);int dellist(linklist l,int i,elemtype e);void get(linklist l,int i);void initlist(linklist *l);int inslist(linklist l,int i,elemtype e);int listlength(linklist l);void locate(linklist l,elemtype e);void main()linklist k;int m;/要查找的序號(hào)int n;/要插入的位置int t;/ 要?jiǎng)h

11、除的位置char a;/要查找的元素initlist(&k);node *p;p=k-next;printf(用尾插法建立單鏈表,請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n); createtail(k);while(p!=null)printf(%cn,p-data);p=p-next;printf(請(qǐng)輸入要查找的序號(hào): );scanf(%d,&m);printf(查找到的元素是:);get(k,m);printf(n請(qǐng)輸入要查找的元素:);scanf( %c,&a); locate(k,a);printf(n請(qǐng)輸入要插入的位置:);scanf(%d,&n);printf(插入的元素是:);scanf(

12、%c,&a);inslist(k,n,a);printf(插入后的鏈表是:);p=k-next;while(p!=null)printf(%c ,p-data);p=p-next;printf(n請(qǐng)輸入要?jiǎng)h除的位置: );scanf(%d,&t);dellist(k,t,a);printf(刪除的元素是:%cn,a);scanf(%c,&a);printf(刪除后的鏈表是:);p=k-next;while(p!=null)printf(%c ,p-data);p=p-next;printf(n鏈表的長度是:%dn,listlength(k);void initlist(linklist *k)

13、*k=(linklist)malloc(sizeof(node);(*k)-next=null; void createtail(linklist l)char c;node *r,*s;int flag=1; r=l; while(flag) c=getchar();if(c!=$)s=(node*)malloc(sizeof(node);s-data=c;r-next=s;r=s;elseflag=0;r-next=null; void get(linklist l,int i)int j;node *p;p=l;j=0; while(p-next!=null&jnext; j+; if(

14、i=j)printf(%c,p-data); else printf(false); void locate(linklist l,elemtype e)node *p;p=l-next; while(p!=null)if(p-data!=e)p=p-next;else break; if(p-data=e)printf(ture);else printf(false);int inslist(linklist l,int i,elemtype e)node *pre,*s;int k;pre=l;k=0; while(pre!=null&knext;k=k+1;if(k!=i-1)print

15、f(插入位置不合法!);return error;s=(node*)malloc(sizeof(node); s-data=e; s-next=pre-next; pre-next=s;return ok;int dellist(linklist l,int i,elemtype e)node *p,*r;int k;p=l;k=0;while(p!=null&knext;k=k+1;if(k!=i-1)printf(刪除結(jié)點(diǎn)的位置不合法!);return error;r=p-next; p-next=p-next-next;e=r-data;free(r); return ok;int list

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論