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

下載本文檔

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

最新文檔

評(píng)論

0/150

提交評(píng)論