




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、淮海工學院計算機科學系實驗報告書課程名: 數(shù)據(jù)結構 題 目: 線性數(shù)據(jù)結構試驗 班 級: 軟嵌151 學 號: 2015123352 姓 名: 韓吉 評語:成績: 指導教師: 批閱時間: 年 月 日線性表實驗報告要求1目的與要求:1)掌握線性表數(shù)據(jù)結構的基本概念和抽象數(shù)據(jù)類型描述;2)熟練掌握線性表數(shù)據(jù)結構的順序和鏈式存儲存表示;3)熟練掌握線性表順序存儲結構的基本操作算法實現(xiàn); 4)熟練掌握線性表的鏈式存儲結構的基本操作算法實現(xiàn);5)掌握線性表在實際問題中的應用和基本編程技巧;6)按照實驗題目要求獨立正確地完成實驗內(nèi)容(提交程序清單及相關實驗數(shù)據(jù)與運行結果);7)按照報告格式和內(nèi)容要求,認真
2、書寫實驗報告,并于下周周二前統(tǒng)一提交實驗報告電子版文檔(每次實驗全體同學必須提交實驗報告電子版,實驗報告文檔文件命名方式:姓名+學號+數(shù)據(jù)結構第x次實驗報告)提交給學委,而后由學委以班為單位統(tǒng)一打包(包文件名為:軟件14x班-數(shù)據(jù)結構第x次實驗報告)用郵件發(fā)給老師;提交紙質(zhì)報告(每班每次收5份,學委安排,保證每學期每個同學至少提交一次)一起提交給老師。每次提交電子文檔時,學委務必統(tǒng)計和上報未交報告人數(shù)和具體姓名;凡逾期不交報告者,不再推遲提交,一律按照曠交處理。8)積極開展實驗組組內(nèi)交流和輔導,嚴禁直接復制和剽竊他人實驗成果,一旦發(fā)現(xiàn)嚴肅處理;9)上實驗課前,要求每個同學基本寫好程序,并存儲在
3、自己的u盤上,用于實驗課堂操作時調(diào)試和運行。2實驗內(nèi)容或題目(在一個主程序中實現(xiàn)全部題目內(nèi)容)一、順序表的基本操作實現(xiàn)實驗要求:數(shù)據(jù)元素類型elemtype取整型int。按照順序存儲結構實現(xiàn)如下算法:1)創(chuàng)建任意整數(shù)線性表(即線性表的元素值隨機在鍵盤上輸入)的順序存儲結構(即順序表),長度限定在25之內(nèi);2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個元素,并返回其值;4)在順序表第i個元素之前插入一已知元素;5)在順序表中刪除第i個元素;6)求順序表中所有元素值(整數(shù))之和;二、鏈表(帶頭結點)基本操作實驗要求:數(shù)據(jù)元素類型elemtype取字符型cha
4、r。按照動態(tài)單鏈表結構實現(xiàn)如下算法:1)按照頭插法或尾插法創(chuàng)建一個帶頭結點的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長度限定在10之內(nèi);2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結點順序);3)在鏈表中查找第i個元素,i合法返回元素值,否則,返回false;4)在鏈表中查找與一已知字符相同的第一個結點,有則返回true,否則,返回false;5)在鏈表中第i個結點之前插入一個新結點;6)在線性表中刪除第i個結點;7)計算鏈表的長度。3實驗步驟與源程序#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(請輸入線性表的長度:);scanf(%d,&r);l-last=r-1;printf(請輸入線性表中的各元素值:n);for(i=0;ilast;i+)scanf(
8、%d,&l-elemi);printf(線性表中所有元素之和是:%dn,sumlist(l);printf(請輸入要查找的位置:);scanf(%d,&p); printf(查找的元素是:%dn,getdata(l,p);printf(請輸入要插入的位置:);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(請輸入要刪除的位置:);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ù)結構第二題.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;/要查找的序號int n;/要插入的位置int t;/ 要刪
11、除的位置char a;/要查找的元素initlist(&k);node *p;p=k-next;printf(用尾插法建立單鏈表,請輸入鏈表數(shù)據(jù),以$結束!n); createtail(k);while(p!=null)printf(%cn,p-data);p=p-next;printf(請輸入要查找的序號: );scanf(%d,&m);printf(查找到的元素是:);get(k,m);printf(n請輸入要查找的元素:);scanf( %c,&a); locate(k,a);printf(n請輸入要插入的位置:);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請輸入要刪除的位置: );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(刪除結點的位置不合法!);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等.壓縮文件請下載最新的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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年阿里5次面試碰壁100天深造-Jetpack架構組件從入門到精通險獲騰訊年薪45w+offer
- 2024-2025學年下學期高一生物人教版期末必刷??碱}之人類遺傳病
- 建筑施工特種作業(yè)-建筑起重機械安裝拆卸工(物料提升機)真題庫-4
- 國家開放大學電大《資源與運營管理》機考終結性2套真題題庫及答案9
- 色彩與心理題目及答案
- 軟考信管題目及答案
- 11 1 用樣本估計總體-2026版53高考數(shù)學總復習A版精煉
- 5 2 平面向量的數(shù)量積及其應用-高考數(shù)學真題分類 十年高考
- 2023-2024學年河南省許昌市高二下學期7月期末教學質(zhì)量檢測數(shù)學試題(解析版)
- 2024-2025學年陜西省西安市部分學校聯(lián)考高一上學期期末考試語文試題(解析版)
- 物理中考二輪復習教案 1作圖專題3(電學電磁學)
- 石膏廠安全管理制度 最終
- 2025年河北省中考麒麟卷生物(二)
- 結構動力學完整版本
- 2025年八年級數(shù)學下學期期末總復習八年級數(shù)學下學期期末測試卷(2)(學生版+解析)
- 四級閱讀測試題及答案
- 農(nóng)村供水水質(zhì)管理制度
- 建筑工地應急預案方案
- T/CIE 208-2024兒童機器人教育評價指南
- 2025年高考英語課后續(xù)寫高頻考點話題分類第07講 讀后續(xù)寫之成長類主題(講義)
評論
0/150
提交評論