版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選文檔淮海工學(xué)院計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)報(bào)告書(shū)課程名: 數(shù)據(jù)結(jié)構(gòu) 題 目: 線性數(shù)據(jù)結(jié)構(gòu)試驗(yàn) 班 級(jí): 軟嵌151 學(xué) 號(hào): 2015123352 姓 名: 韓吉 評(píng)語(yǔ):成績(jī): 指導(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í)際問(wèn)題中的應(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)告格式
2、和內(nèi)容要求,認(rèn)真書(shū)寫(xiě)實(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)積極開(kāi)展實(shí)驗(yàn)組組內(nèi)交流和輔導(dǎo),嚴(yán)禁直接復(fù)制和剽竊他人實(shí)驗(yàn)成果,一旦發(fā)現(xiàn)嚴(yán)肅處理;9)上實(shí)驗(yàn)課前,要求每個(gè)同學(xué)基本寫(xiě)
3、好程序,并存儲(chǔ)在自己的U盤(pán)上,用于實(shí)驗(yàn)課堂操作時(shí)調(diào)試和運(yùn)行。2實(shí)驗(yàn)內(nèi)容或題目(在一個(gè)主程序中實(shí)現(xiàn)全部題目?jī)?nèi)容)一、順序表的基本操作實(shí)現(xiàn)實(shí)驗(yàn)要求:數(shù)據(jù)元素類型ElemType取整型int。按照順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)創(chuàng)建任意整數(shù)線性表(即線性表的元素值隨機(jī)在鍵盤(pán)上輸入)的順序存儲(chǔ)結(jié)構(gòu)(即順序表),長(zhǎng)度限定在25之內(nèi);2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個(gè)元素,并返回其值;4)在順序表第i個(gè)元素之前插入一已知元素;5)在順序表中刪除第i個(gè)元素;6)求順序表中所有元素值(整數(shù))之和;二、鏈表(帶頭結(jié)點(diǎn))基本操作實(shí)驗(yàn)要求:數(shù)據(jù)元素類型ElemTyp
4、e取字符型char。按照動(dòng)態(tài)單鏈表結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)按照頭插法或尾插法創(chuàng)建一個(gè)帶頭結(jié)點(diǎn)的字符型單鏈表(鏈表的字符元素從鍵盤(pán)輸入),長(zhǎng)度限定在10之內(nèi);2)打印(遍歷)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結(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ì)算鏈表的長(zhǎng)度。3實(shí)驗(yàn)步驟與源程序#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("超出了鏈表的最大范圍,無(wú)法插入無(wú)法插入!");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;/線性表的長(zhǎng)度int
8、 t;/插入的元素int s;/刪除的位置int w;/要插入的位置int i;l=(SeqList *)malloc(sizeof(SeqList);q=(int*)malloc(sizeof(int);printf("請(qǐng)輸入線性表的長(zhǎng)度:");scanf("%d",&r);l->last=r-1;printf("請(qǐng)輸入線性表中的各元素值:n");for(i=0;i<=l->last;i+)scanf("%d",&l->elemi);printf("線性表中所有元
9、素之和是:%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;
10、i<=l->last;i+)printf("%d ",l->elemi);printf("n");printf("請(qǐng)輸入要?jiǎng)h除的位置:");scanf("%d",&s);DelList(l,s,q);printf("刪除的元素值是:%dn",*q);printf("刪除后的線性表:n");for(i=0;i<=l->last;i+)printf("%d ",l->elemi);/ 數(shù)據(jù)結(jié)構(gòu)第二題.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;/要查找的序號(hào)int n;/要插入的位置int t;/ 要?jiǎng)h除的位置char a;/要查找的元素InitList(&k);Node *p;p=k-&
13、gt;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
14、,a);printf("n請(qǐng)輸入要插入的位置:");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請(qǐng)輸入要?jiǎng)h除的位置: ");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鏈表的長(zhǎng)度是:%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("刪除結(jié)點(diǎn)的位置不合法!");return ERROR;r=p->next; p->next=p->next-&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025勞動(dòng)合同終止協(xié)議模板
- 商丘醫(yī)學(xué)高等專科學(xué)?!掇k公軟件應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 商丘學(xué)院《機(jī)器學(xué)習(xí)與模式識(shí)別》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年版專業(yè)代駕協(xié)議條款版
- 種子繁育合作合同范例
- 商丘工學(xué)院《專業(yè)教育(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 商洛職業(yè)技術(shù)學(xué)院《機(jī)械裝備設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 運(yùn)輸抽油機(jī)合同范例
- 陜西中醫(yī)藥大學(xué)《酒水服務(wù)與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度水電安裝工程材料研發(fā)、生產(chǎn)與訂購(gòu)合同3篇
- 福建省廈門(mén)市2023-2024學(xué)年高二上學(xué)期期考化學(xué)試題(含答案)
- 廣東省六校聯(lián)考2024-2025學(xué)年高二上學(xué)期12月月考試題 英語(yǔ) 含答案
- 人教版高一地理必修一期末試卷
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期1月期末地理試題 附答案
- 2024-2025學(xué)年北師大版九年級(jí)上冊(cè)數(shù)學(xué)期末測(cè)試綜合練習(xí)題(原卷版)-A4
- 導(dǎo)管室工作總結(jié)課件
- 2025北京語(yǔ)言大學(xué)新編長(zhǎng)聘人員招聘21人筆試備考試題及答案解析
- 派出所戶籍業(yè)務(wù)培訓(xùn)
- 博鰲機(jī)場(chǎng)控制區(qū)證件培訓(xùn)專項(xiàng)測(cè)試卷
- 珠寶鑒賞智慧樹(shù)知到期末考試答案章節(jié)答案2024年同濟(jì)大學(xué)
- 國(guó)家開(kāi)放大學(xué)《中文學(xué)科論文寫(xiě)作》形考任務(wù)1-4參考答案
評(píng)論
0/150
提交評(píng)論