




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選文檔淮海工學院計算機科學系實驗報告書課程名: 數據結構 題 目: 線性數據結構試驗 班 級: 軟嵌151 學 號: 2015123352 姓 名: 韓吉 評語:成績: 指導教師: 批閱時間: 年 月 日精選文檔線性表實驗報告要求1目的與要求:1)掌握線性表數據結構的基本概念和抽象數據類型描述;2)熟練掌握線性表數據結構的順序和鏈式存儲存表示;3)熟練掌握線性表順序存儲結構的基本操作算法實現; 4)熟練掌握線性表的鏈式存儲結構的基本操作算法實現;5)掌握線性表在實際問題中的應用和基本編程技巧;6)按照實驗題目要求獨立正確地完成實驗內容(提交程序清單及相關實驗數據與運行結果);7)按照報告格式
2、和內容要求,認真書寫實驗報告,并于下周周二前統一提交實驗報告電子版文檔(每次實驗全體同學必須提交實驗報告電子版,實驗報告文檔文件命名方式:姓名+學號+數據結構第X次實驗報告)提交給學委,而后由學委以班為單位統一打包(包文件名為:軟件14X班-數據結構第X次實驗報告)用郵件發給老師;提交紙質報告(每班每次收5份,學委安排,保證每學期每個同學至少提交一次)一起提交給老師。每次提交電子文檔時,學委務必統計和上報未交報告人數和具體姓名;凡逾期不交報告者,不再推遲提交,一律按照曠交處理。8)積極開展實驗組組內交流和輔導,嚴禁直接復制和剽竊他人實驗成果,一旦發現嚴肅處理;9)上實驗課前,要求每個同學基本寫
3、好程序,并存儲在自己的U盤上,用于實驗課堂操作時調試和運行。2實驗內容或題目(在一個主程序中實現全部題目內容)一、順序表的基本操作實現實驗要求:數據元素類型ElemType取整型int。按照順序存儲結構實現如下算法:1)創建任意整數線性表(即線性表的元素值隨機在鍵盤上輸入)的順序存儲結構(即順序表),長度限定在25之內;2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個元素,并返回其值;4)在順序表第i個元素之前插入一已知元素;5)在順序表中刪除第i個元素;6)求順序表中所有元素值(整數)之和;二、鏈表(帶頭結點)基本操作實驗要求:數據元素類型ElemTyp
4、e取字符型char。按照動態單鏈表結構實現如下算法:1)按照頭插法或尾插法創建一個帶頭結點的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長度限定在10之內;2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結點順序);3)在鏈表中查找第i個元素,i合法返回元素值,否則,返回FALSE;4)在鏈表中查找與一已知字符相同的第一個結點,有則返回TRUE,否則,返回FALSE;5)在鏈表中第i個結點之前插入一個新結點;6)在線性表中刪除第i個結點;7)計算鏈表的長度。3實驗步驟與源程序#include"stdio.h"#include"stdlib.h
5、"#include"malloc.h"#define OK 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(i<1)|(i>L->l
6、ast+2)printf("插入位置i值不合法!");return(ERROR);if(L->last>=MAXSIZE-1)printf("超出了鏈表的最大范圍,無法插入無法插入!");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(i<1)|(i>L->l
7、ast+1)printf("刪除位置不在表中,不合法!");return(ERROR);*e=L->elemi-1;for(k=i;k<=L->last;k+)L->elemk-1=L->elemk;L->last-;return(OK);int SumList(SeqList *L)int sum=0;for(int i=0;i<=L->last;i+)sum+=L->elemi;return(sum);void main()SeqList *l;int p;/要查找的位置int *q;int r;/線性表的長度int
8、 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;i<=l->last;i+)scanf("%d",&l->elemi);printf("線性表中所有元
9、素之和是:%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;
10、i<=l->last;i+)printf("%d ",l->elemi);printf("n");printf("請輸入要刪除的位置:");scanf("%d",&s);DelList(l,s,q);printf("刪除的元素值是:%dn",*q);printf("刪除后的線性表:n");for(i=0;i<=l->last;i+)printf("%d ",l->elemi);/ 數據結構第二題.cpp : De
11、fines the entry point for the console application./#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define OK 1#define ERROR 0#define TURE 1#define FALSE 0typedef char ElemType;typedef struct NodeElemType data;struct Node*next;Node,*LinkList;void CreateTail(LinkList L);int
12、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;/ 要刪除的位置char a;/要查找的元素InitList(&k);Node *p;p=k-&
13、gt;next;printf("用尾插法建立單鏈表,請輸入鏈表數據,以$結束!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
14、,a);printf("n請輸入要插入的位置:");scanf("%d",&n);printf("插入的元素是:");scanf(" %c",&a);InsList(k,n,a);printf("插入后的鏈表是:");p=k->next;while(p!=NULL)printf("%c ",p->data);p=p->next;printf("n請輸入要刪除的位置: ");scanf("%d",&
15、;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)*k=(LinkList)malloc(sizeof(Node);(*k)->ne
16、xt=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&&j<i)p=p->next
17、; j+; if(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,ElemTyp
18、e e)Node *pre,*s;int k;pre=L;k=0; while(pre!=NULL&&k<i-1)pre=pre->next;k=k+1;if(k!=i-1)printf("插入位置不合法!");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&&k<i-1)p=p->next;k=k+1;if(k!=i-1)printf("刪除結點的位置不合法!");return ERROR;r=p->next; p->next=p->next-&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 31615.2-2025食品安全國家標準食品用菌種安全性評價程序
- GB/T 21290-2025凍羅非魚片
- 腦血管意外觀察及護理
- 新疆鐵道職業技術學院《車輛工程專業課程》2023-2024學年第二學期期末試卷
- 石棉縣2025屆數學四年級第二學期期末綜合測試模擬試題含解析
- 遼寧特殊教育師范高等??茖W?!秾W科科技英語寫作:安全》2023-2024學年第二學期期末試卷
- 天津城市職業學院《相對論與量子力學》2023-2024學年第一學期期末試卷
- 山東特殊教育職業學院《中醫內科學理論》2023-2024學年第一學期期末試卷
- 遼寧城市建設職業技術學院《藝術衍生品策劃與創意(文創方向)》2023-2024學年第二學期期末試卷
- 鄭州財經學院《中藥商品學》2023-2024學年第一學期期末試卷
- 影視后期調色-04達芬奇一級校色
- 《住宅室內防水工程技術規范JGJ298-2013》
- 腫瘤專科護士考試題附有答案
- 酒店工程部培訓課件
- 省級一網統管網格化社會治理指揮手冊(含事項清單)
- 知道智慧網課《科技倫理》章節測試答案
- 工程居間合同范本電子版
- 中醫超聲霧化療法臨床應用標準
- 8.4 AutoCAD拼畫滑動軸承裝配圖
- QCT265-2023汽車零部件編號規則
- 成語故事-螳臂當車-守株待兔-歷史典故講解
評論
0/150
提交評論