



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、淮海工學院計算機科學系實驗報告書課程名:數據結構題目:線性表數據結構試驗班級:學號:姓名:評語:成績:指導教師:批閱時間:年月日數據結構實驗報告- 1 -線性表實驗報告要求1 目的與要求 :1 )掌握線性表數據結構的基本概念和抽象數據類型描述;2 )熟練掌握線性表數據結構的順序和鏈式存儲存表示;3 )熟練掌握線性表順序存儲結構的基本操作算法實現;4 )熟練掌握線性表的鏈式存儲結構的基本操作算法實現;5 )掌握線性表在實際問題中的應用和基本編程技巧;6 )按照實驗題目要求獨立正確地完成實驗內容(提交程序清單及相關實驗數據與運行結果);7 )按照報告格式和內容要求,認真書寫實驗報告,并在試驗后的第
2、三天提交電子(全班同學提交到學委,再統(tǒng)一打包提交給老師)和紙質(每班每次5 份,學委安排,保證每個同學至少提交一次) ;8 )積極開展實驗組組內交流和輔導,嚴禁復制和剽竊他人實驗成果,一旦發(fā)現嚴肅處理;9 )上實驗課前,要求每個同學基本寫好程序,并存儲在自己的U 盤上,用于實驗課堂操作時調試和運行。凡不做準備,沒有提前編寫程序者,拒絕上機試驗。2 實驗內容或題目一、順序表的基本操作實現實驗要求:數據元素類型ElemType取整型 int 。按照順序存儲結構實現如下算法:1)創(chuàng)建任意整數線性表(即線性表的元素值隨機在鍵盤上輸入)的順序存儲結構(即順序表),長度限定在25 之內;2)打印 / 顯示
3、(遍歷)該線性表(依次打印/ 顯示出表中元素值) ;3)在順序表中查找第i 個元素,并返回其值;4)在順序表第i 個元素之前插入一已知元素;5)在順序表中刪除第i 個元素;6)求順序表中所有元素值(整數)之和;數據結構實驗報告- 2 -二、鏈表(帶頭結點)基本操作實驗要求:數據元素類型ElemType取字符型char 。按照動態(tài)單鏈表結構實現如下算法:1)按照頭插法或尾插法創(chuàng)建一個帶頭結點的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長度限定在 10 之內;2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結點順序);3)在鏈表中查找第i 個元素, i 合法返回元素值,否則
4、,返回FALSE;4)在鏈表中查找與一已知字符相同的第一個結點,有則返回TRUE,否則,返回FALSE;5)在鏈表中第i 個結點之前插入一個新結點;6)在線性表中刪除第i 個結點; 7)計算鏈表的長度。3 實驗步驟與源程序一、 順序表的基本操作實現實驗Common.h#include #include #include #define OK1#define ERROR0#define TRUE 1#define FALSE 0Seqlist.h#define ElemType int#define MAXSIZE25typedefstructElemTypeelemMAXSIZE;intlas
5、t;SeqList;#include common.h#include seqlist.hintLocate(SeqList L, int n)數據結構實驗報告- 3 -int i=0;while (iL.last&i!=n)i+;if(i=L.last)return L.elemi;elsereturn(-1);intInsList(SeqList *L,int i,ElemType e)int k;if(iL-last+2)printf( 插入位置i 值不合法 );return(ERROR);if(L-last= MAXSIZE-1)printf( 表已滿無法插入);return(ERRO
6、R);for(k=L-last;k=i-1;k-)L-elemk+1=L-elemk;L-elemi-1=e;L-last+;return(OK);intDelList(SeqList *L,int i,ElemType *e)數據結構實驗報告- 4 -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);intAddList(SeqList *L)int k,s=0;for(k=0;klast;k+)
7、s=s+L-elemk;return s;void main()SeqList l;int p,q,r,*q1;int i;q1=(int*)malloc(sizeof(int);printf( 請輸入線性表的長度:);scanf(%d,&r);數據結構實驗報告- 5 -l.last = r-1;printf( 請輸入線性表的各元素值:n);for(i=0; i=l.last; i+)scanf(%d,&l.elemi);printf( 請輸入要查找的元素的位置:n);scanf(%d,&q);p=Locate(l,q);if(p = -1)printf( 在此線性表中沒有這樣的元素!n);e
8、lseprintf( 該位置的元素為:%dn,p);printf( 請輸入要插入的位置:n);scanf(%d,&p);printf( 請輸入要插入的元素值:n);scanf(%d,&q);InsList(&l,p,q);for(i=0; i=l.last; i+)printf(%d,l.elemi);printf(n);printf( 請輸入要刪除的元素位置:n);scanf(%d,&p);DelList(&l,p,&q);printf( 刪除的元素值為:%dn,q);printf( 刪除后的元素序列:n);for(i=0; i=l.last; i+)數據結構實驗報告- 6 -printf(
9、%d,l.elemi);printf(n);printf( 剩余數字之和為:);printf( n %dn,AddList(&l);二、鏈表(帶頭結點)基本操作實驗Common.h#include #include #include #define OK1#define ERROR0#define TRUE 1#define FALSELinklist.htypedef char ElemType;typedef struct NodeElemType data;struct Node* next;Node, *LinkList;#include #include #define ElemTy
10、pe chartypedef struct Node數據結構實驗報告- 7 -ElemType data;struct Node* next;Node, *LinkList;LinkListCreateFromHead()LinkListL;Node*s;charc;intflag=1,i=1;L=(LinkList)malloc(sizeof(Node);L-next=NULL;while(flag&idata=c;s-next=L-next;L-next=s;elseflag=0;i+;return L;數據結構實驗報告- 8 -Node *search(LinkList L,int i)
11、int j=0;Node *p;p=L;while(p-next!=NULL&jnext;j+;if(i=j) return p;else return NULL;Node *locate(LinkList L,ElemType key)Node *p;p=L-next;while(p!=NULL)if(p-data!=key)p=p-next;else break;return p;void InsList(LinkList L,int i,ElemType e)Node *p,*s;數據結構實驗報告- 9 -int k;p=L;k=0;while(p!=NULL&knext;k=k+1;i
12、f(k!=i-1)printf(error!);s=(Node *)malloc(sizeof(Node);s-data=e;s-next=p-next;p-next=s;void delLink(LinkList L,int i,ElemType *e)Node *p,*r;int k;p=L;k=0;while(p-next!=NULL&knext;k=k+1;數據結構實驗報告- 10 -if(k!=i-1)printf( 位置不合理 );r=p-next;p-next=p-next-next;*e=r-data;free(r);int Listlength(LinkList L)Node
13、 *p;p=L-next;int j=0;while(p!=NULL)p=p-next;j+;return j;void main()LinkList l;Node *p;char e;數據結構 實驗報告-11-char a;int i,n;printf( 用頭插法建立單鏈表,請輸入鏈表數據 , 以 $結束 !n);l = CreateFromHead();p = l-next;printf( 輸入的字符依次為:);while(p!=NULL)printf(%c,p-data);p=p-next;printf(%cn);Node *p1;printf( 請輸入要查找的字符的序號:);scanf
14、(%d,&n);printf( 要查找的字符:n);p1=search(l,n);printf(%c,p1-data);printf(%cn);printf( 插入后的字符:n);scanf(%c,&a);InsList(l,3,a);p1=l-next;while(p1!=NULL)printf(%c,p1-data);p1=p1-next;數據結構實驗報告- 12 -printf(%cn);delLink(l,2,&e);p1=l-next;printf( 刪除后的字符為:n);while(p1!=NULL)printf(%c,p1-data);p1=p1-next;printf(%cn);printf( 該字符串的長度為:n);i=Listlength(l);printf(%dn,i);printf( 輸入要查找的字符:n);scanf(%c,&a);p1=locate(l,a);if(p1!=NULL)printf(true);printf(%cn);elseprintf(flase!);printf(%cn);數據結構實驗報告- 13 -4 測試數據與實驗結果(可以抓圖粘貼)一 順序表的基本操作實現實驗數據結構實驗報告- 14 -二、鏈表(帶頭結點)基本操作實驗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- HY/T 0457-2024藍碳生態(tài)系統(tǒng)碳儲量調查與評估技術規(guī)程海草床
- 福建福州金山中學2024~2025學年高一下冊期末考試數學試題學生卷
- 福建福州第一中學2024~2025學年下冊高一數冊末試題
- 口碑營銷在互聯網廣告中的互動營銷策略考核試卷
- 供應鏈風險預警與供應鏈風險管理人才培養(yǎng)研究考核試卷
- 糖廠生產過程智能化維護與預測性維護技術考核試卷
- 升降機操作界面與人性化設計檢查考核試卷
- 服裝標簽設計中的印刷材料選擇考核試卷
- 2025年中國PE啞光透明面漆數據監(jiān)測研究報告
- 2025年中國lcd電路板數據監(jiān)測報告
- 實驗室安全應急預案及應急措施
- 靜脈輸液管理與患者滿意度提升方案
- 北師大版八年級下冊數學期末考試試題帶答案
- 【MOOC】組織行為學-對外經濟貿易大學 中國大學慕課MOOC答案
- 【MOOC】食品微生物學-北京林業(yè)大學 中國大學慕課MOOC答案
- 【MOOC】生物化學實驗-南京大學 中國大學慕課MOOC答案
- 《中華人民共和國學前教育法》專題培訓
- 國開(四川)2024年秋《社會學概論》形考任務1-2答案終結性考核答案
- 電商平臺供應鏈管理技術分析
- 燃油燃燒器常見故障現象的原因分析及排除方法
- 北京匯文中學初一新生分班(摸底)語文考試模擬試卷(10套試卷帶答案解析)
評論
0/150
提交評論